当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > Imail密码加密算法及VBS实现

VBScript
用vbs脚本来关闭 HTML 页面的代码
用vbs实现确定是否安装了某个特定的补丁
用vbs确定用户的登录名的代码
用vbs找到映射到共享的所有驱动器并重新映射它们
可以从一台远程服务器运行 SP2 安装程序Install.vbs
用vbs判断一个日期是否在指定的时段内
vbs+hta中实现在单个 onClick 参数中包括多个子例程的代码
vbs中实现启动两个应用程序,一直等到其中一个程序结束,然后关闭另一个?
用vbs实现对文本文件中的项计数
用vbs对文本文件的内容进行排序
用vbscript把 Word 文档保存为文本文件的代码
用vbs返回 Internet Explorer 的下载控件和 Applet 的列表
用vbscript合并多个文本文件的代码
用vbscript防止本地用户更改其密码
用vbs针对一个 IP 地址范围运行脚本
用vbs 实现从剪贴板中抓取一个 URL 然后在浏览器中打开该 Web 站点
使用vbscript脚本在表单中进行选择的代码
一个把任何文件转成批处理的vbs脚本Any2Bat.vbs
windows脚本调试howto的方法
注册表的禁用与解锁方法集合

VBScript 中的 Imail密码加密算法及VBS实现


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 76 ::
收藏到网摘: n/a

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.再对应密码表就可以得到密码了.
具体程序如下:
Sub initCode(ByRef Infos) '自动生成密码表
Count=-97
CodeArray=Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F")
for z=0 to Ubound(CodeArray)
for y=0 to Ubound(CodeArray)
Infos.Add Cstr(Count),CodeArray(z) & CodeArray(y)
Count=Count+1
next
next
End Sub
Function GetImailPassword(User,Pass) 'Imail密码加密函数
encryptCode=""
Set objDict=CreateObject("Scripting.Dictionary")
Call initCode(objDict)
User=Lcase(User) '将用户转为小写
FirstChar=left(User,1)
FirstCharCode=asc(FirstChar) '得到首字母的ASCII码
Reference=FirstCharCode-97 '得到参考值
execute "Dim UserCode(" & len(User)-1 & ")" '定义两个存放用户与密码ASCII的数组
execute "Dim PassCode(" & len(Pass)-1 & ")"
for i=0 to len(User)-1 '取得用户字母的偏移量
UChar=Asc(mid(User,i+1,1))
UserCode(i)=FirstCharCode-UChar
next
for j=0 to len(Pass)-1 '取得密码对应的新值
PChar=Asc(mid(Pass,j+1,1))
iPos=j mod len(User)
PassCode(j)=PChar+Reference-UserCode(iPos)
next
for k=0 to Ubound(PassCode) '查询密码表,最后得到密码
encryptCode= encryptCode & objDict.item(Cstr(PassCode(k)))
next
GetImailPassword=encryptCode
end function
iUser="web9898" '测试用的Imail用户名
iPass="web9898.cn" '测试用的Imail密码
Wscript.Echo iPass & "加密后的密码是:" & GetImailPassword(iUser,iPass)