我可以为OpenSSL 3des设置密钥长度吗?

时间:2017-05-10 07:16:40

标签: ruby encryption openssl 3des

我想做这些

  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错误。

1 个答案:

答案 0 :(得分:2)

来自OpenSSL ruby​​文档:

  

key_length =整数→整数

     

设置密码的密钥长度。如果   密码是固定长度的密码,然后尝试设置密钥   长度到固定值以外的任何值都是错误。

     

在正常情况下,您不需要调用此方法(和   可能不应该)。

     

有关详细信息,请参阅EVP_CIPHER_CTX_set_key_length。

由于 Triple Des 固定长度的密钥密码(168位~24个字节),您会收到错误。