微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

解密 AES-256 密码

如何解决解密 AES-256 密码

我正在使用 Cipher.decrypt 来解密 AES-256。在 saltOrIV 中,我按如下方式发送:

var ivBytes = Encoding.fromHex("000000000000000000000000");
var ivSend = Encoding.toBase64(ivBytes);

cipher.decrypt(bodyBase64,key,"AES/GCM/PKCS5Padding",ivSend,0);

但我收到以下异常:com.demandware.beehive.core.internal.crypt.EncryptionException: com.demandware.beehive.core.internal.crypt.EncryptionException: java.security.InvalidAlgorithmParameterException: Unsupported parameter: javax.crypto.spec.IvParameterSpec

有人可以帮助我解决我做错的事情吗?

谢谢

解决方法

首先,"AES/GCM/PKCS5Padding" 没有意义,使用 "AES/GCM/NoPadding" 代替因为 GCM 不需要任何填充

要解决此问题,请使用 ivBytes 而不是 ivSend。十六进制和基数 64 是二进制的文本表示。 IV 本身应该由 12 个二进制字节组成,而不是包含 ASCII 中的 base 64 的 16 个字节。

请注意,要保证 GCM 的安全,“IV”应该是唯一值,即所谓的随机数。否则,您必须为每次加密使用不同的密钥。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。