par
Cur3 » 30 nov. 2013, 13:33
Bonjour,
J'essaye de chiffrer des données avant de les mettre dans une base de données. J'ai suivi quelques tutos sur l'utilisation de
mcrypt et j'ai écrit (et surtout copié) ce bout de code :
function generateIv() {
return mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND);
}
function chiffrer($msg, $key, $iv) {
return mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $msg, MCRYPT_MODE_CBC, $iv);
}
function dechiffrer($msg, $key, $iv) {
return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $msg, MCRYPT_MODE_CBC, $iv);
}
$key = 'secret-32chars';
$iv = generateIv();
// Pour chiffrer un message
$msgBase = 'Bonjour PHPFrance !';
$msgChiffre = chiffrer($msgBase, $key, $iv);
// Pour déchiffrer un message
$msgClair = dechiffrer($msgChiffre, $key, $iv);
J'ai remarqué qu'il fallait le même
IV pour chiffrer / déchiffrer. Je pense donc le stocker lui aussi en base de données. Ce n'est pas dangereux ? Avec qu'un IV et le message chiffré, on ne peut rien faire ?
C'est quoi au juste cet
IV, il sert à quoi ?
Merci !

Bonjour,
J'essaye de chiffrer des données avant de les mettre dans une base de données. J'ai suivi quelques tutos sur l'utilisation de [b]mcrypt[/b] et j'ai écrit (et surtout copié) ce bout de code :
[php]
function generateIv() {
return mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND);
}
function chiffrer($msg, $key, $iv) {
return mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $msg, MCRYPT_MODE_CBC, $iv);
}
function dechiffrer($msg, $key, $iv) {
return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $msg, MCRYPT_MODE_CBC, $iv);
}
$key = 'secret-32chars';
$iv = generateIv();
// Pour chiffrer un message
$msgBase = 'Bonjour PHPFrance !';
$msgChiffre = chiffrer($msgBase, $key, $iv);
// Pour déchiffrer un message
$msgClair = dechiffrer($msgChiffre, $key, $iv);
[/php]
J'ai remarqué qu'il fallait le même [b]IV[/b] pour chiffrer / déchiffrer. Je pense donc le stocker lui aussi en base de données. Ce n'est pas dangereux ? Avec qu'un IV et le message chiffré, on ne peut rien faire ?
C'est quoi au juste cet [b]IV[/b], il sert à quoi ?
Merci ! :)