PHP-RSA2签名验证如何实现
发表于:2024-10-11 作者:千家信息网编辑
千家信息网最后更新 2024年10月11日,本篇内容介绍了"PHP-RSA2签名验证如何实现"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PHP
千家信息网最后更新 2024年10月11日PHP-RSA2签名验证如何实现
本篇内容介绍了"PHP-RSA2签名验证如何实现"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
什么是RSA2?
RSA2是在原来SHA1WithRSA签名算法的基础上,新增了支持SHA256WithRSA的签名算法。
该算法在摘要算法上比SHA1WithRSA有更强的安全能力。
SHA1WithRSA的签名算法会继续提供支持,但为了您的应用安全,强烈建议使用SHA256WithRSA的签名算法。
开发平台算法名称 | 标准签名算法名称 | 备注 |
---|---|---|
RSA2 | SHA256WithRSA | (强烈推荐使用),强制要求RSA密钥的长度至少为2048 |
RSA | SHA1WithRSA | 对RSA密钥的长度不限制,推荐使用2048位以上 |
那些公司在使用?
一些大型公司的开发平台,比如支付宝、新浪微博。
创建私钥、公钥
//生成原始 RSA私钥文件
openssl genrsa -out rsa_private_key.pem 1024
//将原始 RSA私钥转换为 pkcs8格式
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out private_key.pem
//生成RSA公钥
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
//我们将私钥rsa_private_key.pem用在服务器端,公钥发放给android跟ios等前端。
PHP-RSA2签名验证
class Rsa2{ private static $PRIVATE_KEY = 'rsa_private_key.pem 内容'; private static $PUBLIC_KEY = 'rsa_public_key.pem 内容'; /** * 获取私钥 * @return bool|resource */ private static function getPrivateKey() { $privKey = self::$PRIVATE_KEY; return openssl_pkey_get_private($privKey); } /** * 获取公钥 * @return bool|resource */ private static function getPublicKey() { $publicKey = self::$PUBLIC_KEY; return openssl_pkey_get_public($publicKey); } /** * 创建签名 * @param string $data 数据 * @return null|string */ public function createSign($data = '') { if (!is_string($data)) { return null; } return openssl_sign( $data, $sign, self::getPrivateKey(), OPENSSL_ALGO_SHA256 ) ? base64_encode($sign) : null; } /** * 验证签名 * @param string $data 数据 * @param string $sign 签名 * @return bool */ public function verifySign($data = '', $sign = '') { if (!is_string($sign) || !is_string($sign)) { return false; } return (bool)openssl_verify( $data, base64_decode($sign), self::getPublicKey(), OPENSSL_ALGO_SHA256 ); }}
PHP 调用
require_once "Rsa2.php";$rsa2 = new Rsa2();$data = 'my data'; //待签名字符串$strSign = $rsa2->createSign($data); //生成签名var_dump($strSign);$is_ok = $rsa2->verifySign($data, $sign); //验证签名var_dump($is_ok);
"PHP-RSA2签名验证如何实现"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
算法
验证
公钥
内容
生成
原始
安全
公司
名称
密钥
平台
开发平台
数据
更多
知识
长度
开发
推荐
支持
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
178永恒之塔捏脸数据库
文件服务器管理方式
汽车车载网络技术配图
和平精英换服务器还能玩吗
大型系统软件开发流程
饥荒单机服务器回档指令
深信服的网络安全业务
我们应该如何保护网络安全
100人的软件开发团队
微创网络技术
邮件服务器最低配置
网络安全中idea的全称
分离数据库mdf文件没有了
hp服务器ppm故障
服务器内存损坏
湖南app软件开发需要多少钱
怎么查看单机传奇数据库
远程桌面数据库卡住了
互联网消费金融科技
日照网络技术研究所
高性能服务器设计聊天知乎
高德空间数据库
dnf服务器怎么赚钱
安卓创建一个数据库文件
控制面板 服务器管理器
接入网交换机网络安全
网络安全自主可控发展
中国金融数据库 西交利物浦大学
广东云客网络技术电话
软件测试里面包括软件开发吗