gpt4 book ai didi

PHP mcrypt 问题,奇怪的字符/警告

转载 作者:行者123 更新时间:2023-12-04 07:07:32 25 4
gpt4 key购买 nike

我不知道我做错了什么。我只需要能够加密和解密而不会收到奇怪的字符或警告。它说我应该使用长度为 16 的 IV,并且我使用的长度为 9,但“0123456789abcdef”是 16 个字符。

Warning: mcrypt_generic_init() [function.mcrypt-generic-init]: Iv size incorrect; supplied length: 9, needed: 16 in /home/mcondiff/public_html/projects/enc/enc.php on line 10



http://www.teamconcept.org/projects/enc/enc.php

我迷路了,迷茫了,有点头晕。我该从这里走吗?我必须使用这种加密并让它为一个项目工作。
<?php

class enc
{
function encrypt($str, $key) {
$key = $this->hex2bin($key);

$td = mcrypt_module_open("rijndael-128", "", "cbc", "fedcba9876543210");

mcrypt_generic_init($td, $key, CIPHER_IV);
$encrypted = mcrypt_generic($td, $str);

mcrypt_generic_deinit($td);
mcrypt_module_close($td);

return bin2hex($encrypted);
}

function decrypt($code, $key) {
$key = $this->hex2bin($key);
$code = $this->hex2bin($code);

$td = mcrypt_module_open("rijndael-128", "", "cbc", "fedcba9876543210");

mcrypt_generic_init($td, $key, CIPHER_IV);
$decrypted = mdecrypt_generic($td, $code);

mcrypt_generic_deinit($td);
mcrypt_module_close($td);

return utf8_encode(trim($decrypted));
}

function hex2bin($hexdata) {
$bindata = "";

for ($i = 0; $i < strlen($hexdata); $i += 2) {
$bindata .= chr(hexdec(substr($hexdata, $i, 2)));
}

return $bindata;
}

}

$theEncryption = new enc();
$user = "John Doe";
$email = "john@example.com";
$user = $theEncryption->encrypt($user, "0123456789abcdef");

$email = $theEncryption->encrypt($email, "0123456789abcdef");

echo 'User: '.$user;
echo 'Email: '.$email;

?>

有人可以指出我正确的方向或指出我做错了什么吗?

谢谢

麦克风

最佳答案

CIPHER_IV 可能是一个未定义的常量。 PHP 引发“使用未定义常量”通知,然后使用“常量”作为字符串。字符串“CIPHER_IV”的长度为 9 个字符。

关于PHP mcrypt 问题,奇怪的字符/警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/893859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com