C 使用键值计算键检查值
Iam用C语言编程。我已获得组件中的TMK终端主密钥,例如TMK1=32字节十六进制值TMK2=32字节十六进制值。 我需要使用这两个键值计算键检查值。 我知道DES算法是用来实现这一点,但我不知道完整的程序。 请提供一个示例程序来执行此操作 我试着这样做: 1.取KV:XXXX XXXX XXXX YYYYYYYYYYYYYY 2.将其分为左、右两部分,每部分长度为64位: 左=XXXX XXXX XXXX XXXX 右=YYYYYYYYYYYY 3.用零初始化64位缓冲区。调用此缓冲区结果 4.DES用左键加密结果 5.DES使用权限对结果进行解密 6.DES用左键加密结果C 使用键值计算键检查值,c,encryption,cryptography,openssl,key-management,C,Encryption,Cryptography,Openssl,Key Management,Iam用C语言编程。我已获得组件中的TMK终端主密钥,例如TMK1=32字节十六进制值TMK2=32字节十六进制值。 我需要使用这两个键值计算键检查值。 我知道DES算法是用来实现这一点,但我不知道完整的程序。 请提供一个示例程序来执行此操作 我试着这样做: 1.取KV:XXXX XXXX XXXX YYYYYYYYYYYYYY 2.将其分为左、右两部分,每部分长度为64位: 左=XXXX XXXX XXXX XXXX 右=YYYYYYYYYYYY 3.用零初始化64位缓冲区。调用此缓冲区结果
平台:Linux,C语言我现在不能给你一个代码,但我建议你把KV当作一个字符串或数组或字符,这样你就可以很容易地把它分成两部分。类似的东西。KV是以十六进制值的形式给出的……我是否必须将其转换为ASCII然后使用,还是应该按原样使用。@john:不要将其转换为ASCII。它是二进制数据,所以直接使用它。让我想起一些旧的ANSI银行标准,X9.9或类似的东西。你说你不知道使用的算法,但你告诉我们的更少。我们怎么可能给出有用的答案?我主要关心的是如何划分TMK内容,并将其用于上面提到的连续3DES算法。@john您有一个16字节的三重DES密钥。那有什么问题?您提到的步骤是正确的。假设您使用3DES,那么就很容易做到: