2016-11-15 57 views
0

我可以在我的Android應用程序通過這個代碼如何發送密碼保護SMS /文本信息

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

發送短信,但我可以發送一個密碼保護的短信?有Android的接口從用戶獲取密碼打開我的短信?

+0

您可以收聽收件箱中的新短信並打開獲取詳細信息所需的信息。然後按照@Andriy Omelchenko提到的加密/解密過程 –

回答

1

您可以通過多種方式加密消息文本。例如像在this答案

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)); 
+0

OkThank you very much,但是當我發送短信時,用戶可以在他的收件箱中使用手機。我希望用戶在他的收件箱中打開短信。可能嗎?我不希望用戶在Android應用程序中打開它。我想在他的SIM卡中打開它。 – Fatemeh

+0

打開是可能的,但用戶會看到加密的文本(可能是偶數符號,不僅是一個字母)。解碼加密文本用戶需要你的應用程序。 –

+0

我想如果用戶輸入密碼解密很多惡意軟件都存在,並且可以盜取密碼,所以我不想在android應用程序中傳輸密碼。我可以做保密安全密碼嗎? – Fatemeh