如何在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"]