我的 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)), '&'). "\">Activation your Account</a>";