Skip to content

Instantly share code, notes, and snippets.

@hainuo
Last active March 30, 2019 09:02
Show Gist options
  • Save hainuo/da0ae06bf62c1063cd7d61505c67542f to your computer and use it in GitHub Desktop.
Save hainuo/da0ae06bf62c1063cd7d61505c67542f to your computer and use it in GitHub Desktop.
php7++ 加密解密方法
<?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