Function RC4(ByRef pStrMessage, ByRef pStrKey) Dim lBytAsciiAry(255)
Dim lBytKeyAry(255)
Dim lLngIndex
Dim lBytJump
Dim lBytTemp
Dim lBytY
Dim lLngT
Dim lLngX
Dim lLngKeyLength
' Validate data
If Len(pStrKey) = 0 Then Exit Function
If Len(pStrMessage) = 0 Then Exit Function ' transfer repeated key to array
lLngKeyLength = Len(pStrKey)
For lLngIndex = 0 To 255
lBytKeyAry(lLngIndex) = Asc(Mid(pStrKey, ((lLngIndex) Mod (lLngKeyLength)) + 1, 1))
Next ' Initialize S
For lLngIndex = 0 To 255
lBytAsciiAry(lLngIndex) = lLngIndex
Next ' Switch values of S arround based off of index and Key value
lBytJump = 0
For lLngIndex = 0 To 255
' Figure index to switch
lBytJump = (lBytJump + lBytAsciiAry(lLngIndex) + lBytKeyAry(lLngIndex)) Mod 256
' Do the switch
lBytTemp = lBytAsciiAry(lLngIndex)
lBytAsciiAry(lLngIndex) = lBytAsciiAry(lBytJump)
lBytAsciiAry(lBytJump) = lBytTemp
Next
lLngIndex = 0
lBytJump = 0
For lLngX = 1 To Len(pStrMessage)
lLngIndex = (lLngIndex + 1) Mod 256 ' wrap index
lBytJump = (lBytJump + lBytAsciiAry(lLngIndex)) Mod 256 ' wrap J+S()
' Add/Wrap those two
lLngT = (lBytAsciiAry(lLngIndex) + lBytAsciiAry(lBytJump)) Mod 256
' Switcheroo
lBytTemp = lBytAsciiAry(lLngIndex)
lBytAsciiAry(lLngIndex) = lBytAsciiAry(lBytJump)
lBytAsciiAry(lBytJump) = lBytTemp lBytY = lBytAsciiAry(lLngT)
' Character Encryption ...
RC4 = RC4 & Chr(Asc(Mid(pStrMessage, lLngX, 1)) Xor lBytY)
Next
End Function以上代码是一段RC4加密代码,可将任何字符串转换为加密字符串。经过本人和朋友ldy888测试发现在windows7下得到的结果和在WindowsXP下得到的结果不同。区别在于在XP下显示及结果中NULL字符(ASCII:00)在windows7下全变成了?(ASCII:3F)
经ldy888测试在其他Windows7系统下也有同样问题,而并非本人电脑的特例。
求教出现这种状况的原因以及解决方案,谢谢各位。
解决方案 »
- 求助:VB程序报错
- 求VsFlexGrid6.0
- 想问一下各位大鸟,我想做一个类似于win2003版帮助那种风格的帮助系统,请问要用什么工具去做?谢谢了~!
- 请问扩展名为DB的是什么文件,用什么方式打开和如何建立?
- 怎样把A表里的100条记录都放到B表里去?
- vb安装包安装时反复提示重启机器
- 知道Pop3地址如何收取internet上的邮件?谢谢!
- 求VB6 的优秀进阶书籍
- 急需vsflexgrid
- 救急,关于listview的用法,如何才能使一个数组的每个元素输入到listview中
- 请问除了使用汇编的方法外还有没有其他办法能够获得类模块内某一函数的指针地址呢?
- 关于获取系统中所有EXCEL对象的方法
Dim lBytKeyAry(255)
Dim lLngIndex
Dim lBytJump
Dim lBytTemp
Dim lBytY
Dim lLngT
Dim lLngX
Dim lLngKeyLength
都指明类型试试~