Ruby on Rails解密

以下function在PHP中完美运行。 如何在Ruby on Rails中进行翻译。

请注意,privateKey和iv都是32个字符长。

mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $privateKey, base64_decode($enc), MCRYPT_MODE_CBC, $iv) 

我尝试在Ruby中使用以下内容但是解密错误。

 cipher = OpenSSL::Cipher.new('aes-256-cbc') cipher.decrypt cipher.key = privateKey cipher.iv = iv decrypted = '' << cipher.update(encrypted) << cipher.final 

这里有一些适合我的代码:

 def decrypt_data(data, pwd, iv) encrypted_data = Base64.decode64(data) aes = OpenSSL::Cipher::Cipher.new("AES-256-CBC") aes.decrypt aes.key = Digest::MD5.hexdigest(pwd) aes.iv = iv result = aes.update(encrypted_data) + aes.final end 

在我的示例中,密码使用MD5加密。

我希望这有帮助

你是在php示例中解码它的base64。 你是否也在ruby中这样做?

 require "base64" Base64.decode64(encrypted) 

除此之外,代码对我来说是正确的。