我试图在ruby中加密并在javascript中解密。在ruby中,我使用openssl模块,在javascript中我使用的是crypto-js库。
我可以使用Ruby中的以下代码加密和解密:
def decrypt_with_aes (key, encrypted_message)
message = Base64.decode64(encrypted_message)
aes = OpenSSL::Cipher.new("AES-256-CBC")
aes.decrypt
aes.key = key[:key] || key['key']
aes.iv = key[:iv] || key['iv']
# output result
aes.update(message) + aes.final
end
def encrypt_with_aes(key, message)
aes = OpenSSL::Cipher.new("AES-256-CBC")
aes.encrypt
aes.key = key[:key] || key['key']
aes.iv = key[:iv] || key['iv']
# output result
Base64.encode64(aes.update(message) + aes.final)
end
我正在使用以下密钥和iv
{ key:
{
key: '3f9390ea971d68b82ecab512cbeb073a0a399157dbe22e4d3054c0f1f8c0037a'
iv: 'aba3ac43cf8befcb4678570abb17b6d0'
}
}
当我尝试使用相同的密钥和密钥时,我试图加密的文本的问题iv通过crypto-js解密我得到一个空字符串返回。请帮忙。
function decrypt(encryptedtext, key){
return CryptoJS.AES.decrypt(
CryptoJS.enc.Base64.parse(encryptedtext),
CryptoJS.enc.Base64.parse(key['key']), {iv:
CryptoJS.enc.Hex.parse(key['iv'])}).toString(CryptoJS.enc.Utf8);
}