ASP中encrypt(ecode)代码如何解密!!!

来源:百度知道 编辑:UC知道 时间:2024/05/11 05:40:01
这是加密代码!!!
<% function encrypt(ecode)
Dim texts
dim i
for i=1 to len(ecode)
texts=texts & chr(asc(mid(ecode,i,1))+i)
next
encrypt = texts
end function
function decrypt(dcode)
dim texts
dim i
for i=1 to len(dcode)
texts=texts & chr(asc(mid(dcode,i,1))-i)
next
decrypt=texts
end function
function mistake(preString)
Dim texts
Dim seed
Dim i,length
prestring = trim(preString)
length = len(preString)
seed = length
Randomize(length)
texts = ""
for i = 1 to length
seed = int(94*rnd(-asc(mid(preString,i,1))-seed*asc(right(prestring,1)))+32)
texts = texts & chr(seed) & chr(int(94*rnd(-seed)+32))
next
dim dist
dist=""
for i = 1 to len(texts)
if mid(texts,i,1)<>"'" then
dist=dist+mid(texts,i,1)
end if
next
mistake = dist
end function

晕死,这里不是有两个函数吗?

encrypt(ecode)加密
decrypt(dcode)解密

比方加密abc 那就可以用encrypt("abc")
那么解密呢?就用上面的加密得到的字符串,
decrypt("加密字符串")
不就解密了吗?
____________________________________

补充:

不好意思,回答你问题时,没注意到mistake这个函数。

这个函数是不可逆的,也就是说,没法破解。为什么呢?
比方你试下:
<%= mistake("123456") %>
<%= mistake("223456") %>
你会发现,这两种字符加密的结果,是一样的。也就是说,即使你逆向破解到有几个答案,但你又如何去判断那个才是你要的结果呢???
难。而且它采用了随机种子数,不像decrypt给的固定算法。

目前还没有人能破解这个函数,所以很多网站采用这个函数来做不可逆加密。
用法,和md5一样。