Ben şifrelemek değerini dönerseniz o zaman bir işlevi çağırarak dize geri şifresini dizisini şifrelemek için çalıştı, ben bütün şifrelemek yaparsa doğru değeri döndürmek ve fonksiyonunda kez anda şifresini gibi oluyor, ancak, daha sonra işlevini çağırın yine bana biraz garip kodu dönecektir şifresini çözmek için.
Örnek 1:
public main()
{
$dataArray = array("one"=>1, "two"=>2, "three"=>3);
$a = $this->encryptDecryptInfo(json_encode($dataArray),$this->key);
var_dump($a);
}
public function encryptDecryptInfo($text,$key)
{
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256,
$text= base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CFB, $iv));
return mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($text), MCRYPT_MODE_CFB, $iv);
}
Bu bana string(27) "{"one":1,"two":2,"three":3}" olduğu doğru değeri dönecektir
Örnek 2:
public main()
{
$dataArray = array("one"=>1, "two"=>2, "three"=>3);
$a = $this->encryptDecryptInfo(json_encode($dataArray),$this->key,"encrypt");
$b = $this->encryptDecryptInfo($a,$this->key,"decrypt");
var_dump($b);
}
public function encryptDecryptInfo($text,$key,$type)
{
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CFB), MCRYPT_RAND);
if($type == "encrypt")
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CFB, $iv));
else return mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($text), MCRYPT_MODE_CFB, $iv);
}
Ben bu şekilde kodumu yaparsanız Ancak, bana bu gibi garip değeri dönecektir string(27) "�ÔérôŸY éXgíœÈÐN*é౜CµÖ".
Bunun neden Deos herkes biliyor musun? Şifrelemek ve kodlama şifresini hem de örnek 1 ve örnek 2 için aynıdır, ama neden yerine örneğin garip kodu dönecektir? Bu sorunu düzeltmek için herhangi bir şekilde?