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)