2011-07-03 34 views
2

我正在实施与银行系统的交互。我需要在ECB模式下使用DES schipher。Ruby中的DES ECB

我的密钥是“12345678”,消息是十六进制的[0xF2, 0xF3, 0x2D, 0x1A, 0xC0, 0xFD, 0x23, 0xB4]。我需要将密钥转换为十六进制数组,然后在ecb模式下执行sha加密。结果应该是[0x3E, 0x90, 0x5F, 0xB7, 0xC5, 0xA3, 0x02, 0xB1]

我使用

OpenSSL::Cipher::Cipher.new("des-ecb") 

,是不是?什么是获得满意结果的最佳方式。

我尝试了很多方法,迷失了方向。谢谢你救了我:)

回答

1

正确的方法,如何做编码为:

cipher = OpenSSL::Cipher::Cipher.new("des-ecb") 
cipher.encrypt 
cipher.key = key 
output = cipher.update hash 

以前,我已经使用输出cipher.final