深¢黑色天空
著名写手
著名写手
  • 铜币0枚
  • 威望0点
  • 贡献值0点
阅读:490回复:6

[求助]密码还原不了了~~

楼主#
更多 发布于:2003-08-01 22:47
做数据库时为了安全起见找了段加密程序加密密码,结果发现原来密码没法还原了,谁能帮我写一个解密程序阿,加密程序如下

function encrypt(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
encrypt = dist
end function
深¢黑色天空
著名写手
著名写手
  • 铜币0枚
  • 威望0点
  • 贡献值0点
1C#
发布于:2003-08-04 15:26
Re: [求助]密码还原不了了~~
除非验证密码时加一个通过条件
深¢黑色天空
著名写手
著名写手
  • 铜币0枚
  • 威望0点
  • 贡献值0点
2C#
发布于:2003-08-04 15:26
Re: [求助]密码还原不了了~~
没戏了,已经用上了,换了以前的怎么办?
ApH
ApH
知名人士
知名人士
  • 铜币0枚
  • 威望0点
  • 贡献值0点
3C#
发布于:2003-08-04 14:43
Re: [求助]密码还原不了了~~
换个加密算法吧:)
深¢黑色天空
著名写手
著名写手
  • 铜币0枚
  • 威望0点
  • 贡献值0点
4C#
发布于:2003-08-03 22:34
Re: [求助]密码还原不了了~~
我看了以后也觉得没戏,但是贴出来看看有没有希望,
不知道原来密码的话,如果密码丢了怎么办?
ApH
ApH
知名人士
知名人士
  • 铜币0枚
  • 威望0点
  • 贡献值0点
5C#
发布于:2003-08-02 16:36
Re: [求助]密码还原不了了~~
大概看了一下,瞎说几句。
首先,我认为这个东动要解密的可能比较小,你应该也没有找到解密的代码吧:supergrin:。
第一:程序中的dist,保存的是加密完的数据,其实前面已经存在texts中了,dist与texts的区别是将“'”去除了,这样的操作导致信息损失,无法还原。还原的时候我怎么知道该在什么地方加几个“'”,或者不加。估计原作者这样设计的目的是为了在web上执行不出错。
第二:程序中的加密算法用A_i = f(A_(i-1))的形式编写的,其中用了rnd函数,此函数生成的随机数和很多东东有关,要解密必须要复现这些随机数,源程序中用了负参数减少了变化,但是要复现这些数必须知道length,因为是randomize的种子数,所以此值需要另外保存,还要注意的是原文是trim的length!!!
第三:int()和rnd()*94这种东东会造成信息丢失,还原的数据是有损的,即使说你加密的密码和还原的密码可能有少许的区别,虽然说是少许,计算机可忍受不了。
以上是本人愚见,如果哪位写(找)出了解密算法,尽管向我仍砖头好了:icon_smile_big:

最后(也是最重要的):
为什么要还原密码,登陆的时候讲用户输入的密码加密以后在比较不就可以了?
深¢黑色天空
著名写手
著名写手
  • 铜币0枚
  • 威望0点
  • 贡献值0点
6C#
发布于:2003-08-01 22:49
Re: [求助]密码还原不了了~~
拿asp写的
游客

返回顶部