0

次の関数はPHPで完全に機能します。RubyonRailsでどのように翻訳できますか。

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
4

2 に答える 2

1

ここに私のために働くいくつかのコードがあります:


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で暗号化されています。

この助けを願っています

于 2012-04-11T12:31:47.357 に答える
0

PHPの例ではbase64でデコードしています。ルビーでもそれをやっていますか?

require "base64"
Base64.decode64(encrypted)

それ以外は、コードは私には正しく見えます。

于 2012-04-11T11:35:41.587 に答える