Last active
March 30, 2019 09:02
-
-
Save hainuo/da0ae06bf62c1063cd7d61505c67542f to your computer and use it in GitHub Desktop.
php7++ 加密解密方法
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
if(!function_exists('my_encrypt')) { | |
function my_encrypt($data, $key) | |
{ | |
// Remove the base64 encoding from our key | |
$encryption_key = base64_decode($key); | |
// Generate an initialization vector | |
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc')); | |
// Encrypt the data using AES 256 encryption in CBC mode using our encryption key and initialization vector. | |
$encrypted = openssl_encrypt($data, 'aes-256-cbc', $encryption_key, 0, $iv); | |
// The $iv is just as important as the key for decrypting, so save it with our encrypted data using a unique separator (::) | |
return base64_encode($encrypted . '::' . $iv); | |
} | |
} | |
if(!function_exists('my_decrypt')) { | |
function my_decrypt($data, $key) | |
{ | |
// Remove the base64 encoding from our key | |
$encryption_key = base64_decode($key); | |
// To decrypt, split the encrypted data from our IV - our unique separator used was "::" | |
list($encrypted_data, $iv) = explode('::', base64_decode($data), 2); | |
return openssl_decrypt($encrypted_data, 'aes-256-cbc', $encryption_key, 0, $iv); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment