Bonjour,

Je compte mettre en place cet algorithme de cryptage/décryptage pour sécuriser les données transitant dans mon projet web. J'aimerais votre avis sur la fiabilité du code en terme de sécurité et s'il y a des choses à améliorer.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
class Cipher {
    private $securekey, $iv; //clé privée en paramètre de la classe
    function __construct($textkey) {
        $this->securekey = hash('sha256',$textkey,TRUE); //construction et hashage de la clé privée en SHA-256
        $this->iv = mcrypt_create_iv(32);
    }
    function encrypt($input) { //fonction d'encryptage algorithme blowfish sur base de la clé privée
        return base64_encode(mcrypt_encrypt(MCRYPT_BLOWFISH, $this->securekey, $input, MCRYPT_MODE_ECB, $this->iv));
    }
    function decrypt($input) { //décryptage
        return trim(mcrypt_decrypt(MCRYPT_BLOWFISH, $this->securekey, base64_decode($input), MCRYPT_MODE_ECB, $this->iv));
    }
}
 
$cipher = new Cipher('secret passphrase'); //création de l'objet avec une pass phrase
 
$encryptedtext = $cipher->encrypt("hide me"); //encryptage du texte
echo "->encrypt = $encryptedtext<br />"; //affiche texte encrypté
 
$decryptedtext = $cipher->decrypt($encryptedtext); //décryptage du texte
echo "->decrypt = $decryptedtext<br />"; //affichage du texte décrypté
 
//var_dump($cipher);
?>