Ruby ruby 和 java 怎么相互加密解密 AES 内容 (非标准 AES 要求的密钥长度场景)

L-codes · 2024年01月18日 · 最后由 maomao 回复于 2024年01月23日 · 508 次阅读

在下面的 java 代码里面,发现 AES 的 key 是可以使用 SecretKeySpec 设置任意长度字符串,但是在 Ruby 里面 OpenSSL::Cipher.new 'aes-128-cbc' 强制要求长度为 16 32 等,请问这样的情况下,怎么解密 java 使用了非要求的 AES 密钥长度加密过的内容?

this.key = new SecretKeySpec(key, "AES");
this.decCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
this.decCipher.init(2, this.key, this.iv);

通常就是前置补码 0 到正确长度

@maomao 你说的是 加密内容,不是 key 哦

L-codes 回复

就是 key 的,可以自己测试下

maomao 回复

也尝试过了😂 解密不对

L-codes 回复

有测试数据吗?发个测试数据看下

L-codes 关闭了讨论。 01月25日 13:30
需要 登录 后方可回复, 如果你还没有账号请 注册新账号