php - C转PHP密码加密(逆向)

标签 php c encode

我有一个 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/

相关文章:

php - 使用 Node.js 跟踪对 MySQL 表的更改

c++ - 使用 iPad 上的所有可用内存

c - double 组上的 SIMD?

java - 如何将字节数组转换为自定义基本字符串?

php - var_dump 显示数据,但 echo 说未定义索引 - 不知所措

php - codeigniter 加密在新服务器上返回错误

php - 按键对数组进行排序以匹配另一个数组的按键顺序

可以优化这种不稳定的访问吗?

php - 在 URL 字符串中加密/编码 ID

php - JSON 编码语法不正确