我想用AES256加密text
,我想用我的電子郵件[email protected]
作爲加密它。AES-256加密:從我的固定字符串生成256位(32字節)密鑰
這是我的嘗試:
String key = "[email protected]";
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
byte iv[] = SOME_RANDOM_32_BYTES;
IvParameterSpec ivSpec = new IvParameterSpec(iv);
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
byte[] encryptedResult = cipher.doFinal(text.getBytes("UTF-8"));
當我運行上面的代碼中,我得到了InvalidKeyException將:
java.security.InvalidKeyException: Key length not 128/192/256 bits.
我網上查了,原因是我的鑰匙是不是128/192/256位。我的問題是,如何從電子郵件字符串[email protected]
生成256位(32字節)密鑰?
[Java 256-bit AES Password-Based Encryption](http://stackoverflow.com/questions/992019/java-256-bit-aes-password-based-encryption) –
@ KonstantinV.Salikhov,我檢查了你提供的鏈接,他問了如何使用他的密碼來生成密鑰,但在接受的解決方案中,我沒有看到他的密碼在哪裏使用? – user842225
@ user842225關於鏈接,假定存在局部變量'password'。它用在這行中:'KeySpec spec = new PBEKeySpec(password,salt,65536,256);'。當然,可能的複製假設密碼是祕密的 - 在你的情況下它不會。 –