如果我写了下面的代码如何编写红宝石相当于PHP的mcrypt_encrypt()函数的
mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $raw, MCRYPT_MODE_CBC, $iv);
如何用Ruby写?
如果我写了下面的代码如何编写红宝石相当于PHP的mcrypt_encrypt()函数的
mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $raw, MCRYPT_MODE_CBC, $iv);
如何用Ruby写?
下面是使用OpenSSL红宝石等同,
cipher = OpenSSL::Cipher::Cipher.new("aes-128-cbc")
cipher.encrypt
cipher.key = key
cipher.iv = iv
encrypted = cipher.update(raw)
encrypted << cipher.final
您可以使用openssl库。我想你需要的是这里对称密钥加密:
http://stuff-things.net/2008/02/05/encrypting-lots-of-sensitive-data-with-ruby-on-rails/
能ezcrypto帮助?默认它使用标准aes-128-cbc,但确实知道其他算法。
MCRYPT_RIJNDAEL_128表示块大小16个字节和3个关键尺寸也是可能的
$键〜16个字节(AES-128)
cipher = OpenSSL::Cipher::Cipher.new("aes-128-cbc")
$键〜24字节(AES -192)
cipher = OpenSSL::Cipher::Cipher.new("aes-192-cbc")
$键〜32字节(AES-256)
cipher = OpenSSL::Cipher::Cipher.new("aes-256-cbc")
,然后我们可以使用下面的代码来执行加密
cipher.encrypt
cipher.key = key
cipher.iv = iv
encrypted = cipher.update(raw)
encrypted << cipher.final
感谢您的回答,但坏解密(OpenSSL的:: Cipher :: CipherError)发生了什么问题? – freddiefujiwara 2010-06-24 06:51:36
@ffffff:你可以发布你的代码吗? – 2010-06-24 12:10:00
如果你的密钥大小是32字节,你需要写'OpenSSL :: Cipher :: Cipher.new(“aes-256-cbc”)' – 2014-06-06 03:48:41