我想做这些
require "openssl"
decipher = OpenSSL::Cipher::Cipher.new('des3')
decipher.decrypt
decipher.key = "11111111"
但它会抛出OpenSSL::Cipher::CipherError: key length too short
我尝试按des.key_len = 8
设置密钥长度,但会引发OpenSSL::Cipher::CipherError: invalid key length
错误。
答案 0 :(得分:2)
来自OpenSSL ruby文档:
key_length =整数→整数
设置密码的密钥长度。如果 密码是固定长度的密码,然后尝试设置密钥 长度到固定值以外的任何值都是错误。
在正常情况下,您不需要调用此方法(和 可能不应该)。
有关详细信息,请参阅EVP_CIPHER_CTX_set_key_length。
由于 Triple Des 是固定长度的密钥密码(168位~24个字节),您会收到错误。