Je veux à crypter DES et décrypter, mais fortifier le rapport disent qu'ils sont faible cryptage comment puis-je résoudre ce problème?DES crypter mais fortifier rapport Chiffrement faible sur PHP 5.5.22
Crypter
function encrypt($key, $encrypt)
{
$size = mcrypt_get_block_size(MCRYPT_DES, MCRYPT_MODE_CBC);
$pad = $size - (strlen($encrypt) % $size);
$encrypt = $encrypt . str_repeat(chr($pad), $pad);
$data = mcrypt_encrypt(MCRYPT_DES, $key, $encrypt, MCRYPT_MODE_CBC, $key);
return base64_encode($data);
}
Décrypter
function decrypt($key, $decrypt)
{
$decrypt = base64_decode($decrypt);
$decrypt = mcrypt_decrypt(MCRYPT_DES, $key, $decrypt, MCRYPT_MODE_CBC, $key);
$pad = ord($decrypt{strlen($decrypt) - 1});
if ($pad > strlen($decrypt)) {
return false;
}
if (strspn($decrypt, chr($pad), strlen($decrypt) - $pad) != $pad) {
return false;
}
return substr($decrypt, 0, -1 * $pad);
}
rapport IssueGroup chiffrement faible
}
$size = mcrypt_get_block_size(MCRYPT_DES, MCRYPT_MODE_CBC);
$pad = $size - (strlen($encrypt) % $size);
$encrypt = $encrypt . str_repeat(chr($pad), $pad);
et
{
$decrypt = base64_decode($decrypt);
$decrypt = mcrypt_decrypt(MCRYPT_DES, $key, $decrypt, MCRYPT_MODE_CBC, $key);
$pad = ord($decrypt{strlen($decrypt) - 1});
Eh bien, que diriez-vous d'utiliser quelque chose * moins * faible? DES a été remplacé par 3DES il y a de nombreuses années, mais pour les nouveaux projets, vous devriez utiliser quelque chose de plus rapide et plus sûr, comme AES (MCRYPT_RIJNDAEL_128). –
Utiliser 'mcrypt' ** et ** DES est à peu près la pire chose que vous pourriez faire. –
En fait, DES a été remplacé par AES, qui était le point entier de la concurrence de l'algorithme de chiffrement. 3DES était une mesure d'arrêt et même avec une clé de 168 bits complète, il n'y avait qu'une sécurité de 112 bits. – zaph