当前位置: 首页 > article >正文

【phpseclib】 PHP 使用加密算法 RSA、DES、AES等

一、Composer 下载 phpseclib

# 我使用的是 phpseclib3
composer require phpseclib/phpseclib

二、RSA 加密解密

// 我使用的是 phpseclib3

use phpseclib3\Crypt\RSA;

$type = 'PKCS8'; // 看需求选其一, PKCS8 | PKCS1 | JWK | MSBLOB | OpenSSH | PSS | PuTTY | Raw | WML
$rsaObj = RSA::createKey();
$rsa_public = $rsaObj->getPublicKey();
$private_key = $rsaObj->toString($type); // 私钥
$public_key  = $rsa_public->toString($type); // 公钥

$plaintext  = '测试加密文本';
$ciphertext = $rsa_public->encrypt($plaintext); // 加密
echo $rsaObj->decrypt($ciphertext); // 解密


# ------------------------
# 使用已有密钥加密
$rsa_public_obj = RSA::loadPublicKey($public_key);
$plaintext  = '测试加密文本';
$ciphertext = base64_encode($rsa_public_obj->encrypt($plaintext));

# 使用已有密钥解密
$rsa_private_obj = RSA::loadPrivateKey($private_key);
$text = $rsa_private_obj->decrypt(base64_decode($ciphertext));

三、DES 加密解密

use phpseclib3\Crypt\DES;

// token 加密数据
$token_data = [
    'status'      => 1,
    'expire_time' => 2024-08-01 12:00:00
    // .....
];

$type = 'ecb'; // 看需求选其一, ecb | ctr | cbc | cfb | cfb8 | ofb | ofb8 | gcm | stream
$key = 'HF@w2f#1';
$des_obj = new DES($type);
$des_obj->setKey($key);
$token = base64_encode($des_obj->encrypt(json_encode($token_data))); // 加密
$token_decode = json_decode($des_obj->decrypt(base64_decode($token)), true); // 解密

http://www.kler.cn/a/402283.html

相关文章:

  • STM32低功耗设计NFC与无线距离感应智能钥匙扣-分享
  • 广东智能装备研发制造企业源代码防泄密|源代码防泄密解决方案
  • C++ | Leetcode C++题解之第565题数组嵌套
  • Argo workflow 拉取git 并使用pvc共享文件
  • Flutter:key的作用原理(LocalKey ,GlobalKey)
  • 二级等保要求及设备有哪些?
  • Go语言内存分配源码分析学习笔记
  • oracle导入线上数据的全步骤
  • 探究IOC容器刷新环节初始化前的预处理
  • 【电路笔记 通信】:数字式时分制指令响应型多路传输数据总线 1553协议 289A-97协议
  • Linux-第1集-基础指令 pwd、cd……入门
  • MySQL - 数据库基础 | 数据库操作 | 表操作
  • Apache Dolphinscheduler数据质量源码分析
  • 淘宝商品爬虫:Python的“购物车”大冒险
  • Spring、SpringMVC、SpringBoot、Mybatis小结
  • 华为Ensp模拟器配置RIP路由协议
  • 项目学习:仿b站的视频网站项目02
  • Linux登录指令last详解
  • MATLAB常见数学运算函数
  • 自存 sql常见语句和实际应用