快速业务通道

Imail密码加密算法及VBS实现

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
Imail的所有邮局信息,比如用户,密码都实际上都是存储在计算机注册表当中的,所以只需要
打开注册表就可以看到Imail里的所有信息,包括用户的密码.
细节:
Imail将企业邮局信息全部存储在:
HKEY_LOCAL_MACHINE\SOFTWARE\Ipswitch\IMail\Domains\<DOMAINNAME>\Users\<USERNAME>
这样一个键里,其中DomainName是邮局名,UserName是用户名,而在<USERNAME>下有一个名叫Password的键值则是存储的用户密码.密码并不是明文存储的,而是结这了简单的加密运行后生成的,他的加密过程如下:
1.读取用户名,并将其全部转为小写
2.将用户名每个数字转为对应的ASCII码
3.计算出用户名里每个字母和第一个字母的偏移量
4.计算出每个密码字母对应的ASCII码
5.将密码的每个ASCII码加上参考值(用户名首字母的ASCII减去97)再加上用户名对应的偏移量
6.再对应密码表就可以得到密码了.
具体程序如下:

SubinitCode(ByRefInfos)''自动生成密码表
Count=-97
CodeArray=Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F")
forz=0toUbound(CodeArray)
fory=0toUbound(CodeArray)
Infos.AddCstr(Count),CodeArray(z)&CodeArray(y)
Count=Count+1
next
next
EndSub

FunctionGetImailPassword(User,Pass)''Imail密码加密函数
encryptCode=""
SetobjDict=CreateObject("Scripting.Dictionary")
CallinitCode(objDict)
User=Lcase(User)''将用户转为小写
FirstChar=left(User,1)
FirstCharCode=asc(FirstChar)''得到首字母的ASCII码
Reference=FirstCharCode-97''得到参考值
execute"DimUserCode("&len(User)-1&")"''定义两个存放用户与密码ASCII的数组
execute"DimPassCode("&len(Pass)-1&")"
fori=0tolen(User)-1''取得用户字母的偏移量
UChar=Asc(mid(User,i+1,1))
UserCode(i)=FirstCharCode-UChar
next
forj=0tolen(Pass)-1''取得密码对应的新值
PChar=Asc(mid(Pass,j+1,1))
iPos=jmodlen(User)
PassCode(j)=PChar+Reference-UserCode(iPos)
next
fork=0toUbound(PassCode)''查询密码表,最后得到密码
encryptCode=encryptCode&objDict.item(Cstr(PassCode(k)))
next
GetImailPassword=encryptCode
endfunction

iUser="web9898"''测试用的Imail用户名
iPass="web9898.cn"''测试用的Imail密码
Wscript.EchoiPass&"加密后的密码是:"&GetImailPassword(iUser,iPass)

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号