有很多关于堆栈溢出的线程与这个主题,总是相同的解决方案,但这些对我不起作用。我正在寻找一种方法来解密值byte[]
encrypted并返回byte[]
decodedbytes。
使用Aescrypt方法。我使用编译“com.scottyab:aescrypt:0.0.1”
private void testAES() {
try {
final byte[] encrypted = Base64.decode("R3JhbmRlIFZpY3RvaXJlICE=", Base64.NO_WRAP);
byte[] keyBytes = Base64.decode("L/91ZYrliXvmhYt9FKEkkDDni+PzcnOuV9cikm188+4=", Base64.NO_WRAP);
final byte[] ivBytes = Base64.decode("gqjFHI+YQiP7XYEfcIEJHw==".getBytes(), Base64.NO_WRAP);
final SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
byte[] decodedBytes = AESCrypt.decrypt(keySpec, ivBytes, encrypted);
} catch (Exception e) {
e.printStackTrace();
}
}
对于值密码,我是这样使用的。
private static byte[] testCipher() {
try {
final byte[] encrypted = Base64.decode("R3JhbmRlIFZpY3RvaXJlICE=", Base64.NO_WRAP);
byte[] keyBytes = Base64.decode("L/91ZYrliXvmhYt9FKEkkDDni+PzcnOuV9cikm188+4=", Base64.NO_WRAP);
byte[] ivBytes = Base64.decode("gqjFHI+YQiP7XYEfcIEJHw==".getBytes(), Base64.NO_WRAP);
final IvParameterSpec ivSpecForData = new IvParameterSpec(ivBytes);
SecretKeySpec decodedKeySpec = new SecretKeySpec(keyBytes, "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, decodedKeySpec, ivSpecForData);
byte[] decodedBytes = cipher.doFinal(encrypted); // I have the error here //
return decodedBytes;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
错误:1E06B07B:密码函数:evp_decryptfinal_ex:wrong_final_block_lengt
我尝试放入Cipher.getInstance(aes/cbc/nopadding,aes/cbc/pkcs5padding,aes/cbc/pkcs7padding),但没有任何改变。你有什么办法可以帮我吗?
“r3jhbmrlifzpy3rvaxjlice=”
解码为17个十六进制字节4772616e646520566963746f6972652021
即ASCII文本:“Grande Victoire!”。
17字节不是AES的有效大小,AES是一种要求加密数据为16字节块大小的倍数的分组密码。
没有加密,只有Base64编码。
问题内容: 使用此Gist,我能够在Node.js 0.8.7中成功解密AES256。然后,当我升级到Node.js 0.10.24时,现在看到此错误: TypeError:错误:0606506D:数字信封例程:EVP_DecryptFinal_ex: Decipheriv.Cipher.final(crypto.js:292:27)的最终块长度错误 这是Gist的解密代码(为方便起见,在此处显示
我已经尝试了谷歌和SOF上的几种不同的方法,但我似乎无法让它起作用。我正在尝试用PHP加密一个字符串,用Java解密(Android活动)。在PHP中,为了加密字符串,我使用AES-256-CBC和sha256散列(它在PHP中成功地加密/解密)。问题是无论我尝试什么,我都无法获得Java中未加密的字符串。我最近的尝试以“cipher functions:openssl_internal:wron
我的问题来自于如何用blowfish散列长密码(>72个字符) 我正在使用bcrypt(blowfish)对密码进行散列。因此,我从这个问题中发现https://security.stackexchange.com/questions/39849/does-bcrypt-have-a-maximal-password-length 它的字符限制为72。 所以,我开始考虑限制密码的最大长度,但在这些
请帮助我识别以下RSA加密代码中的问题
问题内容: 继承人错误: 这是导致它的代码: 图标是文件数组。奇怪的是,我的计算机可以在任何图像查看器中正常读取图像。谷歌搜索错误没有给我任何结果。我有很多图像需要阅读,因此除了将图像转换为BufferedImage之外,它们是获取图像尺寸的一种替代方法吗?这样可以解决问题吗?有没有办法修复这些图像?我是通过从iOS设备收集应用程序图标来获得它们的。使用我自己的设备进行的测试没有产生任何错误,尽管
问题内容: 此代码给出了无效的AES密钥长度错误。我该如何纠正?(我想要128位密钥AES加密) 任何帮助表示赞赏 问题答案: 使用a 从密码派生密钥字节。您可以在此处查看详细示例。请注意,您需要指定128位密钥的密钥长度,而不是该示例中所示的256位。 您将遇到的下一个问题是您没有指定填充方案。除非您的消息是16字节(AES块大小)的倍数,否则将引发错误。如示例所示,使用PKCS5Padding