Ben yanlış ne yapıyorum hiçbir fikrim yok. Ben sadece şifrelemek ve tuhaf karakterleri veya uyarı almadan şifresini gerekiyor. O ben 9 uzunluğu kullanıyorum ama "0123456789ABCDEF" 16 karakter uzunluğunda 16 IV'ye kullanılarak ve o olmam gerekiyordu diyor.
Uyarı: mcrypt_generic_init () [function.mcrypt-generic-init]: Yanlış Iv büyüklüğü; verilen uzunluğu: 9, gerekli: 16 in / home / mcondiff / public_html / projects / enk / enc.php 10 hattı üzerine
Bkz http://www.teamconcept.org/projects/enc/enc.php
Ben, kayıp şaşkın, biraz sersemleyebilir ediyorum. İşte buradan nereye gideceğiz? Ben bu şifreleme kullanmak ve bir proje için çalışan almak zorunda.
<?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;
?>
Somone bana doğru yönde işaret ya da ben yanlış yapıyorum ne işaret edebilir?
Teşekkürler
Mikrofon