Imail密碼加密算法及VBS實現(xiàn)
發(fā)布日期:2022-01-17 17:48 | 文章來源:CSDN
Imail的所有郵局信息,比如用戶,密碼都實際上都是存儲在計算機注冊表當(dāng)中的,所以只需要打開注冊表就可以看到Imail里的所有信息,包括用戶的密碼.
細節(jié):
Imail將企業(yè)郵局信息全部存儲在:
HKEY_LOCAL_MACHINE\SOFTWARE\Ipswitch\IMail\Domains\<DOMAINNAME>\Users\<USERNAME>
這樣一個鍵里,其中DomainName是郵局名,UserName是用戶名,而在<USERNAME>下有一個名叫Password的鍵值則是存儲的用戶密碼.密碼并不是明文存儲的,而是結(jié)這了簡單的加密運行后生成的,他的加密過程如下:
1.讀取用戶名,并將其全部轉(zhuǎn)為小寫
2.將用戶名每個數(shù)字轉(zhuǎn)為對應(yīng)的ASCII碼
3.計算出用戶名里每個字母和第一個字母的偏移量
4.計算出每個密碼字母對應(yīng)的ASCII碼
5. 將密碼的每個ASCII碼加上參考值(用戶名首字母的ASCII減去97)再加上用戶名對應(yīng)的偏移量
6.再對應(yīng)密碼表就可以得到密碼了.
具體程序如下: 以下是引用片段: 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密碼加密函數(shù)
encryptCode=""
Set objDict=CreateObject("Scripting.Dictionary")
Call initCode(objDict)
User=Lcase(User) '將用戶轉(zhuǎn)為小寫
FirstChar=left(User,1)
FirstCharCode=asc(FirstChar) '得到首字母的ASCII碼
Reference=FirstCharCode-97 '得到參考值
execute "Dim UserCode(" & len(User)-1 & ")" '定義兩個存放用戶與密碼ASCII的數(shù)組
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 '取得密碼對應(yīng)的新值
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)
Imail將企業(yè)郵局信息全部存儲在:
HKEY_LOCAL_MACHINE\SOFTWARE\Ipswitch\IMail\Domains\<DOMAINNAME>\Users\<USERNAME>
這樣一個鍵里,其中DomainName是郵局名,UserName是用戶名,而在<USERNAME>下有一個名叫Password的鍵值則是存儲的用戶密碼.密碼并不是明文存儲的,而是結(jié)這了簡單的加密運行后生成的,他的加密過程如下:
1.讀取用戶名,并將其全部轉(zhuǎn)為小寫
2.將用戶名每個數(shù)字轉(zhuǎn)為對應(yīng)的ASCII碼
3.計算出用戶名里每個字母和第一個字母的偏移量
4.計算出每個密碼字母對應(yīng)的ASCII碼
5. 將密碼的每個ASCII碼加上參考值(用戶名首字母的ASCII減去97)再加上用戶名對應(yīng)的偏移量
6.再對應(yīng)密碼表就可以得到密碼了.
具體程序如下: 以下是引用片段: 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密碼加密函數(shù)
encryptCode=""
Set objDict=CreateObject("Scripting.Dictionary")
Call initCode(objDict)
User=Lcase(User) '將用戶轉(zhuǎn)為小寫
FirstChar=left(User,1)
FirstCharCode=asc(FirstChar) '得到首字母的ASCII碼
Reference=FirstCharCode-97 '得到參考值
execute "Dim UserCode(" & len(User)-1 & ")" '定義兩個存放用戶與密碼ASCII的數(shù)組
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 '取得密碼對應(yīng)的新值
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)
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
相關(guān)文章