IMAIL cipher encryption algorithm and VBS implementation _VBS

Source: Internet
Author: User
Tags lowercase
IMail all post office information, such as users, passwords are actually stored in the computer registry, so you only need
Open the registry to see all the information in the IMAIL, including the user's password.
Details:
IMail stores All enterprise Post office information in:
Hkey_local_machine\software\ipswitch\imail\domains\<domainname>\users\<username>
In such a key, where DomainName is the name of the post office, USERNAME is the username, and under <USERNAME> there is a key value named password is the stored User password. The password is not stored in plaintext, but it is generated by a simple encryption run. His encryption process is as follows:
1. Read the username and convert it all to lowercase
2. Convert user name to corresponding ASCII code
3. Calculates the offset of each letter and first letter in the username
4. Calculate the ASCII code corresponding to each cipher letter
5. Add the reference value (ASCII minus 97) of each ASCII code of the password plus the corresponding offset of the user name
6. Then the password table can be the password.
The specific procedures are as follows:

Sub Initcode (ByRef infos) ' Automatically generate password table '
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 cryptographic functions
Encryptcode= ""
Set objdict=createobject ("Scripting.Dictionary")
Call Initcode (objdict)
User=lcase (user) ' converts users to lowercase
Firstchar=left (user,1)
FIRSTCHARCODE=ASC (Firstchar) ' Gets the first letter of the ASCII code
reference=firstcharcode-97 ' Get reference value
Execute "Dim usercode (" & Len (User)-1 & ")" ' defines two arrays of user and password ASCII
Execute "Dim passcode (" & Len (pass)-1 & ")"
For i=0 to Len (user)-1 ' Gets the offset of the user's letter
UCHAR=ASC (Mid (user,i+1,1))
Usercode (i) =firstcharcode-uchar
Next
For J=0 to Len (pass)-1 ' Gets the new value for the password
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) ' Query password table, finally get password
Encryptcode= Encryptcode & Objdict.item (Cstr (passcode (k)))
Next
Getimailpassword=encryptcode
End Function

iuser= "web9898" ' Test imail username
ipass= "web9898.cn" ' Test imail password
WScript.Echo ipass & "Encrypted password is:" & Getimailpassword (Iuser,ipass)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.