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

Dacă ți-a fost pe plac articolul, nu uita să folosești butoanele de mai jos pentru a-l distribui!

TwitterFacebookWhatsAppBufferLinkedIn

Lasă un răspuns

Acest articol are un comentariu