我需要使用密鑰在android中加密某些文本。在PHP中的加密代碼看起來像這樣Android中的base64和mcrypt_encrypt
$this->securekey = hash('sha256',$textkey,TRUE);
$this->iv = mcrypt_create_iv(32, MCRYPT_DEV_URANDOM);
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->securekey, $input, MCRYPT_MODE_ECB, $this->iv));
對於Base64的加我從apache.org(公地編解碼器1.6.jar)NetBeans中的公共編解碼器,我的Android應用程序。代碼中沒有錯誤。但是當我運行應用程序並調用使用編解碼器的函數時,應用程序會停止並需要關閉。
在logcat的說:
Android Runtime: java.lang.NoSuchMethodError:
org.apache.commons.codec.binary.Base64.decodeBase64
這裏是我的代碼:
public static String crypt(String input, String key){
byte[] crypted = null;
try{
SecretKeySpec skey = new SecretKeySpec(org.apache.commons.codec.binary.Base64.decodeBase64(key), "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, skey);
crypted = cipher.doFinal(input.getBytes());
}catch(Exception e){
}
return org.apache.commons.codec.binary.Base64.encodeBase64String(crypted);
}
我不知道如果我的代碼做同樣的加密作爲PHP代碼。我發現Android和PHP之間的鏈接爲http://www.androidsnippets.com/encrypt-decrypt-between-android-and-php,但它不使用Base64,僅用於mcrypt_encrypt。任何人都可以幫助我獲得與PHP服務器相同的加密。
在此先感謝。
首先,如果我的生活依賴於密碼相關的信息,我不會相信「android snippets」。可怕的東西。 –