如果我寫了下面的代碼如何編寫紅寶石相當於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