想用DES和3DES加密的函数
找到了以下几个方案1.网上下载的DES.CLS(DES/3DES 加解密类模块 V1.0)的类模块
  在调用SetKey函数时报长度错,不知道大家有用过或调用成功的吗?
    
    Dim binKey(1 To 40) As Byte
    Dim RESmm As DES     
    String2HEX TransKey, 16, binKey    
    Set RESmm = New DES    
    RESmm.SetKey binKey()‘报长度错2.调用VC的dll实现VC类型:
void WINAPI  Triple_Encrypt(unsigned char *m , unsigned char * k, unsigned char * e,int n,int * rn);我在VB的模块中声明如下:Public Declare Function Triple_Encrypt Lib "PC.dll" (ByVal Ptrsource As Long, ByVal Key As Long, ByRef brevDATA As Long, DATLen As Long, RecvdataLen As Long) As Long调用如下:Dim szDataOut(100) As Byte
Dim mypicckey(0 To 7) As Byte '密码
Dim KEY1(0 To 7) As Byte '卡序列号mypicckey(0) = &HFF
mypicckey(1) = &HFF
mypicckey(2) = &HFF
mypicckey(3) = &HFF
mypicckey(4) = &HFF
mypicckey(5) = &HFF
mypicckey(6) = &HFF
mypicckey(7) = &HFFKEY1(0) = &HFF
KEY1(1) = &HFF
KEY1(2) = &HFF
KEY1(3) = &HFF
KEY1(4) = &HFF
KEY1(5) = &HFF
KEY1(6) = &HFF
KEY1(7) = &HFFRES = DES_Triple_Encrypt(VarPtr(mypicckey(0)), VarPtr(Key(0)), VarPtr(szDataOut(0)), 8, 8)‘失败,没有提示VB直接退出
以上两个方案望大虾能够给解释一下,因为没用过VB,想用DES加密技术(DES加解密数据和结果都是16进制的),或有其他方案也行,我用的是VB6,谢谢

解决方案 »

  1.   

    http://www.mvps.org/emorcillo/download/vb6/encrypt.zip
      

  2.   

    '定义成这样试试
    Public Declare Function Triple_Encrypt Lib "PC.dll" (ByRef Ptrsource() As Byte, ByRef Key() As Byte, ByRef brevDATA() As Byte, ByVal DATLen As Long, ByRef RecvdataLen As Long)
      

  3.   

    自己搞定Public Declare Function Triple_Encrypt Lib "PC.dll" (ByRef Ptrsource() As Byte, ByRef Key() As Byte, ByRef brevDATA() As Byte, ByVal DATLen As Long, ByVal RecvdataLen As Long) 
    谢谢各位回复