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

在PHP中,可以使用不同的加密算法(如MD5、SHA1、SHA256)结合RSA算法进行公钥加密和私钥解密。

下面是使用这三种算法进行加密和解密的示例代码:

// 生成RSA密钥对
$keyPair = openssl_pkey_new(array('private_key_bits' => 2048,'private_key_type' => OPENSSL_KEYTYPE_RSA,
));// 获取私钥和公钥
openssl_pkey_export($keyPair, $privateKey);
$publicKey = openssl_pkey_get_details($keyPair)['key'];// 要加密的数据
$data = "Hello, World!";// 使用MD5RSA进行加密和解密
$encryptedMD5RSA = '';
openssl_public_encrypt($data, $encryptedMD5RSA, $publicKey, OPENSSL_PKCS1_PADDING);
$decryptedMD5RSA = '';
openssl_private_decrypt($encryptedMD5RSA, $decryptedMD5RSA, $privateKey, OPENSSL_PKCS1_PADDING);// 使用SHA1RSA进行加密和解密
$encryptedSHA1RSA = '';
openssl_public_encrypt($data, $encryptedSHA1RSA, $publicKey, OPENSSL_PKCS1_PADDING);
$decryptedSHA1RSA = '';
openssl_private_decrypt($encryptedSHA1RSA, $decryptedSHA1RSA, $privateKey, OPENSSL_PKCS1_PADDING);// 使用SHA256RSA进行加密和解密
$encryptedSHA256RSA = '';
openssl_public_encrypt($data, $encryptedSHA256RSA, $publicKey, OPENSSL_PKCS1_PADDING);
$decryptedSHA256RSA = '';
openssl_private_decrypt($encryptedSHA256RSA, $decryptedSHA256RSA, $privateKey, OPENSSL_PKCS1_PADDING);// 打印结果
echo "Original Data: $data\n";
echo "MD5RSA Encrypted: " . base64_encode($encryptedMD5RSA) . "\n";
echo "MD5RSA Decrypted: $decryptedMD5RSA\n";
echo "SHA1RSA Encrypted: " . base64_encode($encryptedSHA1RSA) . "\n";
echo "SHA1RSA Decrypted: $decryptedSHA1RSA\n";
echo "SHA256RSA Encrypted: " . base64_encode($encryptedSHA256RSA) . "\n";
echo "SHA256RSA Decrypted: $decryptedSHA256RSA\n";

http://www.lryc.cn/news/191802.html

相关文章:

  • 第六章:路由交换机及操作系统
  • Kafka SASL认证授权(六)全方位性能测试
  • 基于nodejs+vue校园失物招领平台设计与实现
  • Open Winding-PMSM-开绕组永磁同步电机基本介绍
  • uniapp 一次性上传多条视频 u-upload accept=“video“ uni.chooseMedia uni.uploadFile
  • CentOS7卸载硬盘报错:umount: /data: target is busy.
  • Chrome插件精选 — 鼠标手势插件
  • JMeter分布式
  • [华为杯研究生创新赛 2023] 初赛 REV WP
  • C++中resize和reserve
  • 【面试经典150 | 哈希表】存在重复元素 II
  • Intellij 安装配置 lombok
  • Chrome插件精选 — 暗色主题插件
  • PXE解决uefi安装centos6黑屏问题
  • Feign 调用为何POST不支持同时传入多个SpringQueryMap对象,但是GET方法就支持?
  • RISC-V 特权级架构
  • 目录启示:PHP 与命名空间的声明
  • D. Divide and Equalize--Codeforces Round 903 (Div. 3)
  • 保姆式教程:MAC安装Android studio(包括安装JDK,Android SDK),解决gradle下载慢的问题
  • Ps:选区的布尔运算
  • PyTorch 深度学习之卷积神经网络(基础篇)Basic CNN(九)
  • torch实现Gated PixelCNN
  • 破局「二次创业」:合思的新解法
  • 第五章:TCP和UDP基本原理
  • 算法:动态规划的入门理解
  • 最新版nacos 2.2.3服务注册与发现版本依赖问题
  • 2023年中国合同能源管理行业研究报告
  • php以半小时为单位,输出指定的时间范围
  • Electron应用的 asar 打包 解压
  • 蓝桥等考Python组别十七级003