我有一个 Windows 应用程序,它使用此 C 代码的反向(下面的解码)来加密用户密码:
static void PasswordDecode(char * szPassword)
{
char szEncode[1024];
char strDecodePass[_MAX_BUF_LEN + 1]={""}, strPass[_MAX_BUF_LEN + 1]={""};
strcpy(strDecodePass, szPassword);
for(unsigned int i = 0; i < strlen(strDecodePass)/3; i ++)
{
char szCode[_MAX_BUF_LEN + 1];
strcpy(szCode, strDecodePass + i * 3);
szCode[3] = 0;
int nCode = atoi(szCode);
nCode = 999 - nCode;
sprintf(szEncode, "%c", nCode);
strcat(strPass, szEncode);
}
strcpy(szPassword, strPass);
return;
};
我正在寻找的是使用此算法(但使用 PHP)对密码进行编码的能力,以便我可以将用户帐户导入应用程序。
有人可以帮忙吗?
TIA 吉姆
最佳答案
简单:
function PasswordEncode($str)
{
$enc = "";
for ($i = 0; $i < strlen($str); $i++) {
$enc .= sprintf("%03d", 999 - ord(substr($str, $i)));
}
return $enc;
}
而且,只是为了好玩:
function PasswordDecode($str)
{
$dec = "";
for ($i = 0; $i < strlen($str); $i += 3) {
$dec .= chr(999 - substr($str, $i, 3));
}
return $dec;
}
顺便说一句,称其为“加密”有点夸张。这是完全不安全的,仅通过查看编码的密码可能需要大约五分钟的时间才能弄清楚。
关于php - C转PHP密码加密(逆向),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13147843/