2

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

我的密钥是“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")

, 这样对吗?获得满意结果的最佳方法是什么。

我尝试了很多方法并且迷路了。谢谢你救了我:)

4

1 回答 1

1

正确的方法,如何进行编码是:

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

以前,我使用过输出cipher.final

于 2011-07-04T07:41:54.730 回答