1

我有一个 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)对密码进行编码的能力,以便我可以将用户帐户导入应用程序。

任何人都可以帮忙吗?

蒂亚吉姆

4

1 回答 1

2

简单的:

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;
}

顺便说一句,称这种“加密”是一种夸张的说法。这是完全不安全的,仅通过查看编码密码可能需要大约五分钟才能弄清楚。

于 2012-10-30T21:45:24.123 回答