如何在Ruby中以hex执行Triple DES计算?

我正在尝试在Ruby中进行一些三重DES加密。 我正在尝试复制此页面的结果: http : //da.nmilne.com/des.html

我试图在Ruby中复制这些结果。 我怀疑问题是密钥应该是一个字符串,但我需要传入hex密钥。 要么加密的字符串格式错误。 或者两者都有。 🙂

require 'openssl' des = OpenSSL::Cipher::Cipher.new("des-ede-cbc") des.encrypt des.key="23232323232323234545454545454545" des.update("0000000000000000") res=des.final res.unpack('H*') => ["5045c5d37ca4d13b"] 

但它应该是:

 => ["3a42d7a1d1c60c40"] 

关于我出错的地方的任何指示?

  • 这里记录了不同的3DES算法: http : //www.openssl.org/docs/apps/enc.html
  • 编辑清晰

键是hex的 – 如果你查看粘贴的Java页面,你可以通过解码详细输出中的键的二进制值轻松地看到它。

 >> des_cbc=OpenSSL::Cipher::Cipher.new("des-ede-cbc") => # >> des_cbc.encrypt => # >> des_cbc.key="\x23"*8 << "\x45"*8 => "########EEEEEEEE" >> des_cbc.update("\x00"*8).unpack('H*') => ["3a42d7a1d1c60c40"] 
    Interesting Posts