<p><font face="Verdana">老马 又有新的问题了<br/>我在你给的实例基础上,写了个函数,目的是在程序中方便使用,比如对数据加密后写进数据库,然后从数据库中取出数据再解密。字符串和字节数组的转换,我还搞不太明白,不知道我的函数中出了什么问题,帮忙看下吧 谢谢!</font></p>
<p><font face="Verdana">Public Function gEncryptDes(ByVal strEncryptString <font face="Verdana">As String</font>, ByVal intFlag As Integer) As String<br/> '参数intFlag,1表示加密,2表示解密<br/> Dim i As New cDES<br/> Dim key1(7) As Byte<br/> Dim tmpArr1() As Byte, tmpArr2() As Byte<br/> <br/> Dim strTemp As String<br/> <br/> key1(0) = 1: key1(1) = 2: key1(2) = 3: key1(3) = 4: key1(4) = 5: key1(5) = 6: key1(6) = 7: key1(7) = 8<br/> '以上是密钥<br/> <br/> i.SetKey key1 '设置密钥<br/> <br/> If intFlag = 1 Then '加密<br/> tmpArr1 = StrConv(strEncryptString, vbFromUnicode) '欲加密的内容<br/> i.EncryptDes_ArrToArr tmpArr1, tmpArr2 '加密<br/> strTemp = StrConv(tmpArr2, vbUnicode)<br/> Else '解密<br/> tmpArr1 = StrConv(strEncryptString, vbFromUnicode)<br/> i.EncryptDes_ArrToArr tmpArr1, tmpArr2, , 2 '解密<br/> strTemp = StrConv(tmpArr2, vbUnicode)<br/> End If<br/> <br/> gEncryptDes = strTemp<br/>End Function<br/></font></p>
<p>我在程序中这样调用:</p>
<p> </p>
<p><font face="Verdana">Private Sub Command1_Click()<br/> <font face="Verdana">Debug.Print</font> gEncryptDes(gEncryptDes("大家好", 1), 2)</font></p>
<p><font face="Verdana">End Sub<br/></font></p>
<p>显示的结果不是"大家好",而是乱码。</p>
[此贴子已经被作者于2008-12-23 16:10:36编辑过] |