我有一些代碼,是用Java工作正常,但是當我嘗試在Android中是有問題來使用它。轉換字節[]爲String,發送短信,返回byte []爲String
我試圖與Blowfish算法加密的短信。
與此代碼(關於機器人)的問題是,它不接受字節[],並且不會解密該消息。
發送SMS
sMessage = "hello this is a message"
byte[] byteArray = EncryptBlowfish(sMessage);
//Convert the byte[] into a String which can be sent over SMS
StringBuffer strb = new StringBuffer();
for(int x = 0; x<byteArray.length; x++){
strb.append(byteArray[x]).append(",");
}//for loop
sMessage = strb.toString();
(sMessage然後經由SMS發送)
RECIVING所述SMS
//Convert the String back to a byte[] which can be decrypted
String[] strArray = sMessage.split(",");
byte[] byteArray = new byte[strArray.length];
int hold;
for (int x = 0; x < strArray.length; x++) {
hold = Integer.parseInt(strArray[x]);
byteArray[x] = (byte) hold;
}//for loop
sMessage = DecryptBlowfish(byteArray);
加密方法
解密方法
public static String DecryptBlowfish(byte[] msg){
byte[] decrypted =null;
try {
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.DECRYPT_MODE, secretkey);
decrypted = cipher.doFinal(msg);
} catch(){ //NoSuchAlgorithmException, NoSuchPaddingException..etc
}
return decrypted;
}
該消息被加密,這產生了一個byte [],我已經然後轉換的字節[]爲一個字符串,該字符串的輸出將類似於這...
46,77,52,11,-108,91,-106,88,-81,-43,14,111,-118,-128,-92,-50,69, -44,100,-94,71,92,-49,116,
這個輸出然後通過手機短信發送。該字符串然後轉換回字節[] 但該字節數組不解密。
問題:
- 爲什麼會在Java應用程序此代碼的工作,但不能使用Android?
- 有沒有在做Android的這項工作的一種方式?
- 是否有字節[]轉換爲字符串和背面的一個更好的方法。
(請評論,如果再信息需要,謝謝)
謝謝你在這個例子中,我將實現並返回反饋 – 2012-03-07 13:18:57
亞當只是想再次感謝你,你也許想知道,我的Android應用程序中下面的代碼解決了這個問題 'Message.getBytes(「ISO-8859 -1「);' – 2012-03-07 13:46:17