环境vb6.0此模块是网上找的des加密类模块
我想用这个模块调用其中函数
可总出些莫名其妙的错误
Public Sub SetKey(K_Bit() As Byte)
Public Sub SetKey1(K_Bit() As Byte)
Public Sub SetKey2(K_Bit() As Byte)
Public Sub EncryptDes_ArrToArr(m_bit() As Byte, e_bit() As Byte, [bUseKeyNo As Byte = 1], [bFlag As Byte = 1])
Public Sub Encrypt3Des_ArrToArr(m_bit() As Byte, e_bit() As Byte, [bFlag As Byte = 1])
问题1
Dim K_Bit(8) As Byte
Dim S_K_BIT As StringS_K_BIT = "12345678"Dim i As Integer
For i = 1 To 8 Step 1
K_Bit(i - 1) = CByte(Mid(S_K_BIT, i, 1))
NextSetKey (K_Bit())
编译错误,类型不匹配,缺少数组或用户定义类型
最后一行换成SetKey (K_BIT)也不行,非的我传字符串才行,为什么?问题2
调用EncryptDes_ArrToArr的时候,
EncryptDes_ArrToArr(k_bit(),outbit(),1,1)总提示"缺少="(语法错误)
非要写成a=EncryptDes_ArrToArr(k_bit(),outbit(),1,1)才行
1.1.sub不是没有返回值吗,为什么不写a=就会有语法错误
1.2.是不是由于我的参数类型不对呢?m_bit()是字节数组,应该传进去什么样的值
问题3
调用sub的时候,什么时候加括号,什么时候可以不加?有什么区别?
subname p1 p2
subname (p1,p2)出现以上问题我觉得是我很多基本概念不清,请大家指点,谢谢
我想用这个模块调用其中函数
可总出些莫名其妙的错误
Public Sub SetKey(K_Bit() As Byte)
Public Sub SetKey1(K_Bit() As Byte)
Public Sub SetKey2(K_Bit() As Byte)
Public Sub EncryptDes_ArrToArr(m_bit() As Byte, e_bit() As Byte, [bUseKeyNo As Byte = 1], [bFlag As Byte = 1])
Public Sub Encrypt3Des_ArrToArr(m_bit() As Byte, e_bit() As Byte, [bFlag As Byte = 1])
问题1
Dim K_Bit(8) As Byte
Dim S_K_BIT As StringS_K_BIT = "12345678"Dim i As Integer
For i = 1 To 8 Step 1
K_Bit(i - 1) = CByte(Mid(S_K_BIT, i, 1))
NextSetKey (K_Bit())
编译错误,类型不匹配,缺少数组或用户定义类型
最后一行换成SetKey (K_BIT)也不行,非的我传字符串才行,为什么?问题2
调用EncryptDes_ArrToArr的时候,
EncryptDes_ArrToArr(k_bit(),outbit(),1,1)总提示"缺少="(语法错误)
非要写成a=EncryptDes_ArrToArr(k_bit(),outbit(),1,1)才行
1.1.sub不是没有返回值吗,为什么不写a=就会有语法错误
1.2.是不是由于我的参数类型不对呢?m_bit()是字节数组,应该传进去什么样的值
问题3
调用sub的时候,什么时候加括号,什么时候可以不加?有什么区别?
subname p1 p2
subname (p1,p2)出现以上问题我觉得是我很多基本概念不清,请大家指点,谢谢
解决方案 »
- 请问datareport如何多列打印
- VB中MSFlexGrid如何用鼠标点击某一行即选中该行,并且高亮显示,如果得到所选中行的信息?
- 关于drivelistbox,dirlistbox,filelistbox的使用
- 用&进行字符串连接,竟然慢得象蜗牛,谁有高招?
- 关于语音卡。
- 怎樣得知Excel文件的列數與行數??
- 互相利用的问题!我怎么利用不了你?????????天啊!!!
- 问一个让我找不到头脑的问题!加100分限期1个星期,答对立即加!超时无效!
- 请斑竹看看,我这样的帖子怎么结?
- VB6.0利WMI编程问题,访问windows XP操作系统出错(利用xp操作系统开发的)!
- 我的vb程序中窗体过多,但功能差不多,怎样实现代码共享,听说用controls可以实现,但具体怎么办???
- 在vb里有没有这样的报表控件-打印可以自定义字段
Dim KBit(16) As Byte
Dim S_K_BIT As StringS_K_BIT = "1234567890abcdef"Dim i As Integer
For i = 1 To 16 Step 1
KBit(i - 1) = Asc(Mid(S_K_BIT, i, 1))
NextoDES.SetKey (KBit) 或 oDES.SetKey (KBit())
也不行,还是"编译错误,类型不匹配,缺少数组或用户定义类型"
不过,你可以把那个循环赋值的代码段改成一句话:
Dim K_Bit() AS Byte
ReDim K_Bit(0 to 7)
K_Bit=StrConv("12345678",vbFromUnicode )
看看,如果结果还不对,就把那两个函数的源代码发上来。
针对问题2:
EncryptDes_ArrToArr(k_bit(),outbit(),1,1)总提示"缺少="(语法错误)
肯定会这样提示,因为如果你要调用SUB定义的过程必须写成:
EncryptDes_ArrToArr K_Bit(),OutBit(),1,1
或者
Call EncryptDes_ArrToArr(k_bit(),outbit(),1,1)
即可
函数代码如下
其他问题解决了,谢谢NewViewStudio
'=========================================================================
' SetKey1 函数说明:
' 设置3DES加/解密的的第一个密钥
' 返回:
' 无
' 参数:
' K_Bit() AS Byte 密钥,不少于8个元素
'======================================================================
Sub SetKey1(K_Bit() As Byte)
'//根据密钥生成16个子密钥
Dim Key() As Byte
ReDim Preserve Key(7) As Byte
GenSubKey Key(), key_n1()
End Sub
'=========================================================================
' SetKey2 函数说明:
' 设置3DES加/解密的的第二个密钥
' 返回:
' 无
' 参数:
' K_Bit() AS Byte 密钥,不少于8个元素
'===========================================================================
Sub SetKey2(K_Bit() As Byte)
'//根据密钥生成16个子密钥
Dim Key() As Byte
ReDim Preserve Key(7) As Byte
GenSubKey Key(), key_n2()
End Sub
'===========================================================================