Как отправить защищенный паролем SMS/текстовое сообщение

Я могу отправить смс в своем приложении для Android с помощью этого кода

 SmsManager sm = SmsManager.getDefault();
 sm.sendTextMessage(edt_phoneNo, null, message, null, null);

но могу ли я отправить защищенное паролем смс? Есть ли у Android интерфейс для получения пароля от пользователя, чтобы открыть смс?


person Fatemeh    schedule 15.11.2016    source источник
comment
Вы можете прослушать новые текстовые сообщения в папке «Входящие» и открыть сообщение, необходимое для получения подробной информации. Затем следуйте процессу шифрования/дешифрования, как указано @Andriy Omelchenko.   -  person Mohammed Atif    schedule 15.11.2016


Ответы (1)


Вы можете просто зашифровать текст сообщения многими способами. Например, как в этом ответе.

DESKeySpec keySpec = new DESKeySpec("Your secret Key phrase".getBytes("UTF8"));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(keySpec);
sun.misc.BASE64Encoder base64encoder = new BASE64Encoder();
sun.misc.BASE64Decoder base64decoder = new BASE64Decoder();
.........

// ENCODE plainTextPassword String
byte[] cleartext = plainTextPassword.getBytes("UTF8");      

Cipher cipher = Cipher.getInstance("DES"); // cipher is not thread safe
cipher.init(Cipher.ENCRYPT_MODE, key);
String encryptedPwd = base64encoder.encode(cipher.doFinal(cleartext));
// now you can store it 
......

// DECODE encryptedPwd String
byte[] encrypedPwdBytes = base64decoder.decodeBuffer(encryptedPwd);

Cipher cipher = Cipher.getInstance("DES");// cipher is not thread safe
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] plainTextPwdBytes = (cipher.doFinal(encrypedPwdBytes));
person Andrii Omelchenko    schedule 15.11.2016
comment
Хорошо, большое спасибо., но когда я отправляю смс, пользователь получает его в своем почтовом ящике телефона. Я хочу, чтобы пользователь открывал смс в своем почтовом ящике. Является ли это возможным? Я не хочу, чтобы пользователь открывал его в приложении для Android. Я хочу открыть его в его сим-карте. - person Fatemeh; 15.11.2016
comment
Открыть можно, но пользователь увидит зашифрованный текст (это могут быть даже символы, а не только буквы а..з). Для декодирования зашифрованного текста пользователю необходимо ваше приложение. - person Andrii Omelchenko; 15.11.2016
comment
Я думаю, что если пользователь вводит пароль для расшифровки, существует множество вредоносных программ, которые могут украсть пароль, поэтому я не хочу передавать пароль в приложение для Android. Как я могу сохранить безопасный пароль? - person Fatemeh; 15.11.2016
comment
Я хочу получить пароль от пользователя безопасным способом. Как я могу это сделать? - person Fatemeh; 15.11.2016
comment
Для начала прочтите это. Это сложная тема, которую нельзя обсуждать в комментариях. - person Andrii Omelchenko; 15.11.2016
comment
Я создаю новую тему в stackoverflow.com/questions/40609753/ помогите мне - person Fatemeh; 15.11.2016