2010-06-23 70 views

回答

1

下面是使用OpenSSL紅寶石等同,

cipher = OpenSSL::Cipher::Cipher.new("aes-128-cbc") 
    cipher.encrypt 
    cipher.key = key 
    cipher.iv = iv 
    encrypted = cipher.update(raw) 
    encrypted << cipher.final 
+1

感謝您的回答,但壞解密(OpenSSL的:: Cipher :: CipherError)發生了什麼問題? – freddiefujiwara 2010-06-24 06:51:36

+0

@ffffff:你可以發佈你的代碼嗎? – 2010-06-24 12:10:00

+0

如果你的密鑰大小是32字節,你需要寫'OpenSSL :: Cipher :: Cipher.new(「aes-256-cbc」)' – 2014-06-06 03:48:41

0

ezcrypto幫助?默認它使用標準aes-128-cbc,但確實知道其他算法。

0

MCRYPT_RIJNDAEL_128表示塊大小16個字節和3個關鍵尺寸也是可能的

  1. $鍵〜16個字節(AES-128)

    cipher = OpenSSL::Cipher::Cipher.new("aes-128-cbc")

  2. $鍵〜24字節(AES -192)

    cipher = OpenSSL::Cipher::Cipher.new("aes-192-cbc")

  3. $鍵〜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