Ruby on Rails解密 [英] Ruby on Rails Decryption

查看:95
本文介绍了Ruby on Rails解密的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下功能在PHP中完美无缺。如何在Ruby on Rails中进行翻译。

The following function works perfect in PHP. How can it be translated in Ruby on Rails.

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

Please note that both privateKey and iv are 32 characters long.

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

我尝试在Ruby中使用以下内容,但遇到了错误的解密错误。

I tried to use the following in Ruby but got a bad decrypt error.

cipher = OpenSSL::Cipher.new('aes-256-cbc')

cipher.decrypt
cipher.key = privateKey
cipher.iv = iv

decrypted = '' << cipher.update(encrypted) << cipher.final


推荐答案

这里有一些适用于我的代码:

Here some code which works for me :


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加密。

In my example the password is encrypted with MD5.

希望这个帮助

这篇关于Ruby on Rails解密的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆