一个利用随机数加密字串的算法

一个利用随机数加密字串的算法,第1张

一个利用随机数加密字串的算法,第2张

每个字节加密后有六种结果(占两个字节,超过六种就多一个字节,即三个字节)。也就是说,如果字符串占n个字节,可能的结果就是6的n次方。这个算法的强度不强,可以改进一下:
'表单上的一个按钮, 两个列表框
option explicit
Private子命令1 _ click()
dim I as long
dim S as string
for I = 1到100
S = encode("这是一个测试hello world ")
list 1 . additems
S = decode(S)
list 2 . additems
next
end sub
Private encode(by vals as vbfromnicode)
Dim I As Long
Dim J As Byte
Dim k As Byte,m As Byte
Dim mstr As String
mstr = " abcdefghijklmnopqrstuvwxyz 0123456789 abcdefghijklmnopqrstuvwxyz "
Dim out As String
I = UBound(buff)+1
outs = Space(2 * I Rnd())+0)“”生成的随机数只能是5,不能再大了。如果更大,就要多带一个字节
buff(I)= buff(I)xor j
k = buff(I)。len(mstr)
m = m * 2 ^ 3+j
temps = mid(mstr,k + 1,1) + Mid(mstr,m + 1,1)
Mid(outs,2 * i + 1, 2)= temps
next
encode = outs
end function
private function decode(byvals As String)decrypt
On err GoTo my err
Dim I As Byte
Dim j As Byte
Dim k As Byte
Dim m As Byte
Dim mstr As String
mstr = " abcdefghijklmnopqrstuvwxyz 0122 t2作为字符串
Dim buff()作为字节
Dim n作为Long
n = 0
For I = 1 To Len(s)Step 2
t1 = Mid(s,I,1)
t2 = Mid(s,i + 1,1)
k = InStr(1,mstr,t1) - 1
m = InStr(1,mstr,t2) - 1
j = m \ 2 ^ 3
m = m-j * 2 ^ 3
redim preserve buff(n)
buff(n)= j * len(mstr)+k
buff(n)= buff(n)xor m
n = n+1
next
decode = strconv(buff,vbUnicode)
Exit函数
myerr:
decode = " "

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 一个利用随机数加密字串的算法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情