#include <iostream>
#include <string>
using
namespace
std;
void
passWord1(string str)
{
int
ecx = 0;
int
esi = 0;
int
ebx = str.length();
for
(
int
i = 0; i < str.length() - 1; i++)
{
ecx = str[i];
esi = str[i + 1];
ecx = ecx * esi * (i + 1);
ebx += ecx;
}
int
key = ebx - 0x29A;
cout<<
"输入的用户名:"
<< str <<
" 用户名算出来的值:"
<< hex << ebx <<
" 十进制密码:"
<< dec << key << endl;
}
void
passWord2(string str)
{
int
len = str.length();
char
eax = str[4];
int
ecx = 0x7;
eax = eax % ecx + 0x2;
int
esi = 1;
int
ebx = 0;
for
(
int
i = 0; i < (
int
)eax; i++)
{
esi *= ((
int
)eax - i);
}
for
(
int
i = 0; i < len; i++)
{
ebx = ebx + esi * str[i];
}
int
key = ebx - 0x7a69;
cout << hex << ebx <<
" "
<< dec << key << endl;
cout <<
"输入的用户名:"
<< str <<
" 用户名算出来的值:"
<< hex << ebx <<
" 十进制密码:"
<< dec << key << endl;
}
void
passWord3(string str)
{
int
len = str.length();
int
eax = 0;
int
edx = 0;
char
* key =
new
char
[len];
for
(
int
i = 0; i < len; i++)
{
eax = str[len - i -1];
eax *= eax;
eax *= len - i;
edx = eax % 0x19 + 0x41;
key[len - i - 1] = (
char
)edx;
}
key[len] =
'\0'
;
cout <<
"输入的密码:"
<< str <<
" 密码计算出来的用户名:"
<< hex << key << endl;
}
int
main()
{
passWord1(
"123456"
);
passWord2(
"123456"
);
passWord3(
"123456"
);
return
0;
}