Mikä hitto tässä koodissa on vialla kun ei toimi
<?php $ivk = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC); // haetaan IV:n koko $iv = mcrypt_create_iv($ivk, MCRYPT_RAND); // luodaan uusi IV $salainen="salattava data"; $avain="salasana"; echo $salainen.'<br />'; //tulostetaan salattava data $salattu=mcrypt_encrypt(MCRYPT_BLOWFISH, $avain, $salainen, "cbc", $iv); echo bin2hex($salattu).'<br />'; //tulostetaan se salattuna $avattu=mcrypt_decrypt(MCRYPT_BLOWFISH, $avain, $salainen, "cbc", $iv); echo $avattu; //tulostetaan salattu data purettuna ?>
Koodi tuottaa tämän:
salattava data b14196cf5dc2f1eb6bddb3671b6f037e a«хынчHЁD�J;FћР�
Edit:
Tuo viimeinen rivi on siis jotain binäärikakkaa joka ei näy tässä sellaisena kuin se tulostuu selaimeen.
Katsoin mallia tuon tekemiseksi ohjelmointiputkan oppaasta: https://www.ohjelmointiputka.net/oppaat/opas.
Cryptattu data näyttää olevan joka kerralla erilaista kun päivitän sivu.
Tuo koodi yrittää purkaa alkuperäistä dataa, jota ei ole kryptattu. Sen takia tuosta kolmannesta rivistä ei saa tolkkua.
$avattu=mcrypt_decrypt(MCRYPT_BLOWFISH, $avain, $salainen, "cbc", $iv);
$salainen tilalla pitäisi olla $salattu:
$avattu=mcrypt_decrypt(MCRYPT_BLOWFISH, $avain, $salattu, "cbc", $iv);
Kryptattu data on joka kerralla erilaista, koska arvottu IV on joka kerta eri.
Oho, kylläpä olin sokea.
Kiitos tästä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.