我正在尝试使用带有 Crypto Js(在客户端)和 Rails 中的 OpenSSL(在服务器端)的 AES-256-CBC 加密文本,它们给了我不同的结果。这解释了为什么我无法在服务器端解码加密文本,反之亦然。
这是我的做法:
客户端(加密 JS) - 已编辑
iv = CryptoJS.enc.Base64.parse("kT+uMuPwUk2LH4cFbK0GiA==")
key = CryptoJS.enc.Hex.parse("6476b3f5ec6dcaddb637e9c9654aa687")
encrypted_text = CryptoJS.AES.encrypt("test", key, {mode: CryptoJS.mode.CBC, formatter : Base64Formatter, iv : iv})
encrypted_text => "7Qu7/V7yXHt67wMOV0/1Tg=="
服务器端 (Rails OpenSSL) - 已编辑
iv = Base64.decode64("kT+uMuPwUk2LH4cFbK0GiA==")
key = "6476b3f5ec6dcaddb637e9c9654aa687"
cipher = OpenSSL::Cipher::Cipher.new('aes-256-cbc')
cipher.encrypt
cipher.key = key
cipher.iv = iv
text = cipher.update("test") + cipher.final
encrypted_text = Base64.strict_encode64(text)
encrypted_text => "fHhNBuopuuthdq2SFvvgDw=="
有谁知道我做错了什么?我只是在这一点上难住了。
非常感谢您的帮助..谢谢!
保罗