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

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

一、Composer 下载 phpseclib

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

二、RSA 加密解密

// 我使用的是 phpseclib3use 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.lryc.cn/news/489977.html

相关文章:

  • 【ubuntu】开机进入initramfs,无法开机
  • ECLAIR:利用基础模型实现企业自动化
  • The Yarn application application_xxx_xxx doesn‘t exist in RM
  • elasticsearch介绍和部署
  • Flutter之使用mqtt进行连接和信息传输的使用案例
  • 汽车HiL测试:利用TS-GNSS模拟器掌握硬件性能的仿真艺术
  • 【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
  • 前端知识点---rest(javascript)
  • 13. 猜最大公约数最小公倍数小游戏
  • Git 多仓库提交用户信息动态设置
  • 2024.6使用 UMLS 集成的基于 CNN 的文本索引增强医学图像检索
  • 了解Redis(第一篇)
  • UE5 第一人称射击项目学习(二)
  • npm/cnpm的使用
  • go-zero(六) JWT鉴权
  • 做一个FabricJS.cc的中文文档网站——面向markdown编程
  • 开发 + 安全:网络安全的协作方法
  • Next.js- App Router 概览
  • python oa服务器巡检报告脚本的重构和修改(适应数盾OTP)有空再去改
  • 【工控】线扫相机小结 第四篇
  • 亲测解决Unpack operator in subscript requires Python 3.11 or newer
  • 数据结构 ——— 堆排序算法的实现
  • On-Chip-Network之Topology
  • 2024年11月21日Github流行趋势
  • 第三十八章 IOT 通信协议MQTT协议实现的中间件EMQXDocker安装与验证指南
  • Flume日志采集系统的部署,实现flume负载均衡,flume故障恢复
  • CodiMD导出pdf失败或无中文
  • 数字图像处理(2):Verilog基础语法
  • Kafka 工作流程解析:从 Broker 工作原理、节点的服役、退役、副本的生成到数据存储与读写优化
  • 爬虫重定向问题解决