0

我的 Xor 加密激活链接有问题。Xor 加密激活链接代码起作用,它们加密来自用户的最后一个 ID。但如果我通过邮件进行测试,它会产生奇怪的加密“30303030”

示例 ID:3445 如果加密所以我们有这个 54515c50

但是如果我点击电子邮件中的激活链接,我会看到“30303030”而不是 54515c50。

我不知道如何创建这个加密“30303030”。我用另一个 id 进行测试,我又得到了“30303030”加密

我没有任何想法来解决这个问题。

这是我的代码:

<?php

// XOR "Encryption"
function x0rcrypt($text, $key) {
    if (strlen($schluessel) == 0) {
        return;
    }
    $result = '';
    $i = 0;
    while ($i < strlen($text)) {
        for ($j=0; $j < strlen($key); $j++) {
            if ($i >= strlen($text)) {
                break;
            }
            // Text XOR Key
            $result .= $text{$i} ^ $key{$j};
            $i++;
        }
    }
    return($result);
}

// Hex to Bin
    function hex2bin($string) {
    return pack('H*', $string);
}

// Encryption, return Hex
    function x0rencrypt($text, $key) {
    return bin2hex(x0rcrypt($text, $key));
}

// decode, enter Hex
    function x0rdecrypt($text, $schluessel) {
    return x0rcrypt(hex2bin($text), $schluessel);
}

// Example Code:
$text = 'Blah Blubb';
$key = 'geheimesganzlangesultrakompliziertesPasswort';

// Encryption
#$text_encrypted = x0rencrypt($text, $key);
// Decode
#$text_decrypted = x0rdecrypt($text_encrypted, $key);


?>

这是我的邮件激活链接:

 $activlink="<a href=\"http://" . $_SERVER['SERVER_NAME'] ."/release/".rex_getUrl('82','0', array('mode'=>x0rencrypt($db->last_insert_id, $key)), '&amp;'). "\">Activation your Account</a>";
4

0 回答 0