Bonjour le gens,
Pour protéger les données d'une base de donnée, je me suis dit que je pouvais chiffrer les mails, noms, adresse, téléphone.... (les stocker chiffrés)
Bon le haschage + grain de sable ça c'est ok j'utilise :
hash('ripemd320' , $salage);
Mais pour faire l'inverse ? c'est à dire retrouver la donnée en clair c'est possible ? si oui comment ?
Merci par avance pour votre aide
Bonjour,
Il faut faire attention aux termes employés.
Il y a une énorme différence entre "hasher" et 'crypter" des données.
Le "hashage" permet de rendre illisible des données sans possibilité de les "dé"hasher ...
Le cryptage permet lui de rendre lisible les données, tu peux voir du côté de la librairie sodium
Salut,
Attention aux termes employés @bidule, crypter n'est pas un mot qui existe https://chiffrer.info/
heu .... mince crypt() est obsolète... bon les données c'est pas celles de la banque de France mais bon....
du coup je sais pas vers quoi l'orienter
Merci bidule pour ton aide
OVH ne prends pas en charge libsodium dans mon cas du coup j'essaye d'utiliser Open SSL mais je n'arrive pas à décrypter le texte crypté, tu aurais une idée ?
function chiffrement($mot){
//$key devrait être généré précédement dune manière cryptographique, tel que openssl_random_pseudo_bytes
$plaintext = $mot;
$ivlen = openssl_cipher_iv_length($cipher="AES-128-CBC");
$iv = openssl_random_pseudo_bytes($ivlen);
$ciphertext_raw = openssl_encrypt($plaintext, $cipher, $key, $options=OPENSSL_RAW_DATA, $iv);
$hmac = hash_hmac('sha256', $ciphertext_raw, $key, $as_binary=true);
$ciphertext = base64_encode( $iv.$hmac.$ciphertext_raw );
return $ciphertext;
}
fonctionne le texte est crypté
function dechiffrement($ciphertext){
// déchifrrer plus tard ...
$c = base64_decode($ciphertext);
$ivlen = openssl_cipher_iv_length($cipher="AES-128-CBC");
$iv = substr($c, 0, $ivlen);
$hmac = substr($c, $ivlen, $sha2len=32);
$ciphertext_raw = substr($c, $ivlen+$sha2len);
$original_plaintext = openssl_decrypt($ciphertext_raw, $cipher, $key, $options=OPENSSL_RAW_DATA, $iv);
$calcmac = hash_hmac('sha256', $ciphertext_raw, $key, $as_binary=true);
if (hash_equals($hmac, $calcmac))//PHP 5.6+ timing attack safe comparison
{
return $original_plaintext;
}
}
ne fonctionne pas j'ai rien dans le retour de la fonction dechriffrement !? (c'est une adaptation de l'exemple 2 https://www.php.net/manual/fr/function.openssl-encrypt.php)
Je galère...