Java实现AES加解密后在8gwifi网站验证时密钥输入不匹配问题求解
问题原因
你输入密钥后结果不匹配,是因为网站默认会将你输入的密钥字符串按普通字符编码(如UTF-8/ASCII)转成字节数组,而你代码里打印的ESu3kTBHkd3PaS4p/VzxSQ==是密钥字节的Base64编码结果,两者解析逻辑不一致导致最终使用的密钥不同。
正确设置步骤
首先先明确你Java代码的加密参数:
- AES密钥长度:128位
- 加密模式:ECB
- 填充规则:PKCS5Padding
- 明文编码:UTF-8
- 密文输出格式:Base64
按以下步骤设置网站参数即可匹配结果:
- 算法选择区域选中
AES,模式选ECB,填充选PKCS5Padding - 明文输入框填入
Java Web Developer,明文编码选择UTF-8 - 密钥设置是核心:
- 密钥输入框填入你代码输出的Base64格式密钥:
ESu3kTBHkd3PaS4p/VzxSQ== - 找到密钥输入的编码格式选项,选择
Base64,不要选UTF-8/ASCII等普通字符编码
- 密钥输入框填入你代码输出的Base64格式密钥:
- 输出格式选择
Base64,点击加密按钮即可得到和你Java代码一致的加密结果43Ak2VHK368eandGGYWX2WvbcimGGAEsPdCSjEatjR0=
注意:AES的ECB模式安全性极低,生产环境禁止使用该模式。
内容的提问来源于stack exchange,提问作者Bell Aimsaard
相关产品推荐
相关产品推荐

