在 Java 中使用 AES-256-ECB 解密
Decrypt using AES-256-ECB in Java
我已经使用 AES-256-ECB.
对 PHP 中的字符串进行了加密
$sString = "test"
$sEncryptionMethod = "AES-256-ECB";
$sEncryptionKey = "mysecretkey";
openssl_encrypt($sString, $sEncryptionMethod, $sEncryptionKey)
我想用 Java/Scala?
解密
String secret = "mysecretkey";
SecretKeySpec skeySpec = new SecretKeySpec(encKey.getBytes("UTF-8"), "AES");
byte[] decodedValue = Base64.getDecoder.decode(token);
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
int decryptMode = Cipher.DECRYPT_MODE;
cipher.init(decryptMode, skeySpec);
new String(cipher.doFinal(decodedValue));
我看到以下错误?我们如何使用 Java 解密它?
注意:(PHP 中的解密按预期工作)但我想在 Java
中执行此操作
Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
密钥的长度必须正好是 256 位。显然,PHP 一方正在对 "mysecretkey"
执行一些未指定的魔法巫术以获得 256 位密钥。 Java 通常不会像 PHP 一样参与“用户似乎不知道他们在做什么,嗯,我会在黑暗中疯狂刺杀”是这里的问题。
找出“mysecretkey”如何变成 256 位密钥,并在 java 中复制它。
注意:欧洲央行 extremely insecure。听起来您对加密的了解还不够多,因此没有希望制作出实际上很难轻易破解的应用程序。
NB2:请注意,PHP 文档本身强烈建议 'key' 应该是某种加密派生的 256 位安全源。当您提供损坏的密钥时 openssl_encrypt
实际上会给您一个答案,这一事实有点让人吃惊。请参阅 PHP manual on openssl_encrypt 上的各种评论,这些评论清楚地表明那里正在发生一些奇怪的事情,但 none 足够清楚地实际解释 PHP 是 在做什么这里。
我已经使用 AES-256-ECB.
对 PHP 中的字符串进行了加密$sString = "test"
$sEncryptionMethod = "AES-256-ECB";
$sEncryptionKey = "mysecretkey";
openssl_encrypt($sString, $sEncryptionMethod, $sEncryptionKey)
我想用 Java/Scala?
解密 String secret = "mysecretkey";
SecretKeySpec skeySpec = new SecretKeySpec(encKey.getBytes("UTF-8"), "AES");
byte[] decodedValue = Base64.getDecoder.decode(token);
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
int decryptMode = Cipher.DECRYPT_MODE;
cipher.init(decryptMode, skeySpec);
new String(cipher.doFinal(decodedValue));
我看到以下错误?我们如何使用 Java 解密它? 注意:(PHP 中的解密按预期工作)但我想在 Java
中执行此操作Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
密钥的长度必须正好是 256 位。显然,PHP 一方正在对 "mysecretkey"
执行一些未指定的魔法巫术以获得 256 位密钥。 Java 通常不会像 PHP 一样参与“用户似乎不知道他们在做什么,嗯,我会在黑暗中疯狂刺杀”是这里的问题。
找出“mysecretkey”如何变成 256 位密钥,并在 java 中复制它。
注意:欧洲央行 extremely insecure。听起来您对加密的了解还不够多,因此没有希望制作出实际上很难轻易破解的应用程序。
NB2:请注意,PHP 文档本身强烈建议 'key' 应该是某种加密派生的 256 位安全源。当您提供损坏的密钥时 openssl_encrypt
实际上会给您一个答案,这一事实有点让人吃惊。请参阅 PHP manual on openssl_encrypt 上的各种评论,这些评论清楚地表明那里正在发生一些奇怪的事情,但 none 足够清楚地实际解释 PHP 是 在做什么这里。