是不是所有用3DES加密计算MAC的算法所得出的结果都是一样的呢?
我有两个函数分别为:
第一个:3DES认证码
Public Declare Function TripleMAC Lib "wdcrwx.dll" (ByRef aSingleMACKey As Byte, ByRef aInitData As Byte, ByVal lSourDataLen As Long, ByRef aSourData As Byte, ByRef aMACData As Byte) As Long
' SingleMACKey: 16字节密钥
' InitData: 8字节的初始值
' SourDataLen: 用来产生mac码的原文长度
' SourData: 用来产生mac码的原文
' MactData: 计算出的认证码
' 返回值:
' 认证码的长度为8第二个:
Public Declare Function Do2DESMAC Lib "Des_SS.dll" (ByRef cpEnter As Byte, ByRef cpKey As Byte, ByRef cpResult As Byte, ByVal nEnterLent As Long) As Long
为什么同样的密钥,初始值,报文,所得出的结果不一样呢?
我有两个函数分别为:
第一个:3DES认证码
Public Declare Function TripleMAC Lib "wdcrwx.dll" (ByRef aSingleMACKey As Byte, ByRef aInitData As Byte, ByVal lSourDataLen As Long, ByRef aSourData As Byte, ByRef aMACData As Byte) As Long
' SingleMACKey: 16字节密钥
' InitData: 8字节的初始值
' SourDataLen: 用来产生mac码的原文长度
' SourData: 用来产生mac码的原文
' MactData: 计算出的认证码
' 返回值:
' 认证码的长度为8第二个:
Public Declare Function Do2DESMAC Lib "Des_SS.dll" (ByRef cpEnter As Byte, ByRef cpKey As Byte, ByRef cpResult As Byte, ByVal nEnterLent As Long) As Long
为什么同样的密钥,初始值,报文,所得出的结果不一样呢?
有一些并非使用标准的算法,可能有特殊的地方。
仔细看看算法说明,然后照着写代码吧。