M-am decis să postez resurse necesare dezvoltării web pe blog pentru a le găsi mai ușor atunci când am nevoie de ele.

Pentru cazurile în care vreți să transmiteți date sensibile prin diverse metode, pot fi utile funcțiile de criptare și decriptare.

Iată un exemplu probat:

define("encryption_method", "AES-128-CBC");
define("key", "alabala_portocala");
function encrypt($data) {
    $key = key;
    $plaintext = $data;
    $ivlen = openssl_cipher_iv_length($cipher = encryption_method);
    $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;
}
function decrypt($data) {
    $key = key;
    $c = base64_decode($data);
    $ivlen = openssl_cipher_iv_length($cipher = encryption_method);
    $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))
    {
        return $original_plaintext;
    }
	else  {
		return "Ceva nu a mers cum trebuie";
	}
}

Găsiți mai multe detalii despre criptarea și decriptarea datelor aici: php.net

Un comentariu la „Funcții PHP pentru criptarea și decriptarea datelor”

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *