Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / mysql

php基于openssl加密解密、验证技巧

作者:若离   发布日期:2024-11-17   浏览:1444

  1. 使用openssl_encrypt()函数进行加密:

    function encrypt($data, $key, $iv) {
     $encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
     return base64_encode($encrypted);
    }
  2. 使用openssl_decrypt()函数进行解密:

    function decrypt($data, $key, $iv) {
     $encrypted = base64_decode($data);
     return openssl_decrypt($encrypted, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
    }
  3. 使用openssl_sign()函数进行签名:

    function sign($data, $privateKey) {
     openssl_sign($data, $signature, $privateKey, OPENSSL_ALGO_SHA256);
     return base64_encode($signature);
    }
  4. 使用openssl_verify()函数进行验证签名:

    function verify($data, $signature, $publicKey) {
     $signature = base64_decode($signature);
     return openssl_verify($data, $signature, $publicKey, OPENSSL_ALGO_SHA256);
    }
  5. 生成随机的初始化向量(IV):

    function generateIV() {
     return openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-256-CBC'));
    }
  6. 生成随机的密钥:

    function generateKey() {
     return openssl_random_pseudo_bytes(32);
    }
  7. 加载公钥和私钥:

    $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 闭包那点事儿

大家都在看

php快捷键多行注释(php对多行代码进行

php使用伪装IP教程(php伪造refe

php怎么实现不提示删除(php如何删除文

php 压缩上传文件(php视频压缩上传)

判断值是不是偶数php(php判断奇偶)

手写php代码(如何编写php代码)

php中$alias

php下订单代码(php订单系统)

php如何写回调函数

微信个人收款 php(微信个人收款码)

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站