Ich möchte DES verschlüsseln und entschlüsseln, aber Fortify Bericht sagen, sie sind Weak Encryption Wie kann ich dieses Problem lösen?DES verschlüsseln, aber Fortify Bericht Weak Encryption auf PHP 5.5.22
encrypt
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);
}
decrypt
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);
}
Bericht IssueGroup Weak Encryption
}
$size = mcrypt_get_block_size(MCRYPT_DES, MCRYPT_MODE_CBC);
$pad = $size - (strlen($encrypt) % $size);
$encrypt = $encrypt . str_repeat(chr($pad), $pad);
und
{
$decrypt = base64_decode($decrypt);
$decrypt = mcrypt_decrypt(MCRYPT_DES, $key, $decrypt, MCRYPT_MODE_CBC, $key);
$pad = ord($decrypt{strlen($decrypt) - 1});
Nun, wie wäre es mit etwas * weniger * schwach? DES wurde vor vielen Jahren von 3DES abgelöst, aber für neue Projekte sollten Sie etwas schneller und sicherer verwenden, wie AES (MCRYPT_RIJNDAEL_128). –
Die Verwendung von 'Mcrypt' ** und ** DES ist so ziemlich das Schlimmste, was Sie tun könnten. –
Eigentlich wurde DES von AES abgelöst, das war der ganze Sinn des Verschlüsselungsalgorithmus. 3DES war eine Stop-Gap-Maßnahme und bietet selbst mit einem vollen 168-Bit-Schlüssel nur 112-Bit-Sicherheit. – zaph