使用openssl_encrypt()函数进行加密:
function encrypt($data, $key, $iv) {
$encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
return base64_encode($encrypted);
}
使用openssl_decrypt()函数进行解密:
function decrypt($data, $key, $iv) {
$encrypted = base64_decode($data);
return openssl_decrypt($encrypted, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
}
使用openssl_sign()函数进行签名:
function sign($data, $privateKey) {
openssl_sign($data, $signature, $privateKey, OPENSSL_ALGO_SHA256);
return base64_encode($signature);
}
使用openssl_verify()函数进行验证签名:
function verify($data, $signature, $publicKey) {
$signature = base64_decode($signature);
return openssl_verify($data, $signature, $publicKey, OPENSSL_ALGO_SHA256);
}
生成随机的初始化向量(IV):
function generateIV() {
return openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-256-CBC'));
}
生成随机的密钥:
function generateKey() {
return openssl_random_pseudo_bytes(32);
}
加载公钥和私钥:
$publicKey = openssl_pkey_get_public(file_get_contents('public_key.pem'));
$privateKey = openssl_pkey_get_private(file_get_contents('private_key.pem'));
注意:在使用openssl_encrypt()和openssl_decrypt()函数时,确保使用相同的密钥和初始化向量(IV)进行加密和解密。
上一篇:php highlight_string() 函数对字符串进行语法高亮显示。
下一篇:PHP 闭包那点事儿
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站