php dsa 签名,openssl使用DSA算法生成签名实例详解_PHP教程
文章给大家介绍基于openssl使用DSA算法生成签名实例,生成签名方法很简单,我们需要懂得中间的原理就比较复杂了,大家一起来看看吧。
命令:
openssl> dgst -dss1 -sign C.pri -out signature.bin s.txt
解释
C.pri是DSA算法生成的私钥文件
s.txt是制作签名的原文
signature.bin是生成的签名文件
php中可以使用下面的方法察看签名内容
代码如下
复制代码
echo bin2hex(file_get_contents(‘signature.bin’));
?>
参考内容
消息摘要算法
支持的算法包括:MD2, MD4, MD5, MDC2, SHA1(有时候叫做DSS1), RIPEMD-160。SHA1和RIPEMD-160产生160位哈西值,其他的产生128位。除非出于兼容性考虑,否则推荐使用SHA1或者RIPEMD-160。
除了RIPEMD-160需要用rmd160命令外,其他的算法都可用dgst命令来执行。
OpenSSL对于SHA1的处理有点奇怪,有时候必须把它称作DSS1来引用。
消息摘要算法除了可计算哈西值,还可用于签名和验证签名。签名的时候,对于DSA生成的私匙必须要和DSS1(即SHA1)搭配。而对于RSA生成的私匙,任何消息摘要算法都可使用。
# 消息摘要算法应用例子
# 用SHA1算法计算文件file.txt的哈西值,输出到stdout
$ openssl dgst -sha1 file.txt
# 用SHA1算法计算文件file.txt的哈西值,输出到文件digest.txt
$ openssl sha1 -out digest.txt file.txt
# 用DSS1(SHA1)算法为文件file.txt签名,输出到文件dsasign.bin
# 签名的private key必须为DSA算法产生的,保存在文件dsakey.pem中
$ openssl dgst -dss1 -sign dsakey.pem -out dsasign.bin file.txt
# 用dss1算法验证file.txt的数字签名dsasign.bin,
# 验证的private key为DSA算法产生的文件dsakey.pem
$ openssl dgst -dss1 -prverify dsakey.pem -signature dsasign.bin file.txt
# 用sha1算法为文件file.txt签名,输出到文件rsasign.bin
# 签名的private key为RSA算法产生的文件rsaprivate.pem
$ openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt
# 用sha1算法验证file.txt的数字签名rsasign.bin,
# 验证的public key为RSA算法生成的rsapublic.pem
$ openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt
www.bkjia.comtrueTechArticle文章给大家介绍基于openssl使用DSA算法生成签名实例,生成签名方法很简单,我们需要懂得中间的原理就比较复杂了,大家一起来看看吧。…
php dsa 签名,openssl使用DSA算法生成签名实例详解_PHP教程相关推荐
- mybatis-plus雪花算法生成Id使用详解
文章目录 前言 一.mybatis-plus官网 二.雪花算法实战 1.建表 2.新建测试工程 3.单元测试 三.实现分析 四.为什么默认就是雪花算法 五.主动设置Id生成策略 六.内置的雪花算法工具 ...
- php推荐码生成,最新最全PHP生成制作验证码代码详解(推荐),验证码详解_PHP教程...
最新最全PHP生成制作验证码代码详解(推荐),验证码详解 1.0 首先先看代码 好,现在结合以上代码,来分析分析以上用到的几个函数: ① imagecreatetruecolor(); imagecr ...
- 决策树的生成-ID3算法生成_例题详解
数据集: 判断特征集是否是空集,进行下一步 选择信息增益最大的那个特征作为根节点,以"有自己的房子"作为限定条件看其他特征 D1(有自己的房子)不确定性为0,以D2(没有自己的房子 ...
- php 算法 二进制文件,关于PHP二进制流 逐bit的低位在前算法(详解)_PHP教程
复制代码 代码如下: /****************************************************** * 逐bit的低位在前算法 * @param $x * @retu ...
- python解析二维码_Python二维码生成识别实例详解
前言 在 JavaWeb 开发中,一般使用 Zxing 来生成和识别二维码,但是,Zxing 的识别有点差强人意,不少相对模糊的二维码识别率很低.不过就最新版本的测试来说,识别率有了现显著提高. 对比 ...
- Php公钥加密data是空,php 生成加密公钥加密私钥实例详解
php 生成加密公钥加密私钥实例详解 生成公钥私钥 win下必须要openssl.cof支持 liunx一般已自带安装 $config = array( //"digest_alg" ...
- python实验原理_Python实现蒙特卡洛算法小实验过程详解
蒙特卡洛算法思想 蒙特卡洛(Monte Carlo)法是一类随机算法的统称,提出者是大名鼎鼎的数学家冯·诺伊曼,他在20世纪40年代中期用驰名世界的赌城-摩纳哥的蒙特卡洛来命名这种方法. 通俗的解释一 ...
- python随机生成二维列表_对python产生随机的二维数组实例详解
对python产生随机的二维数组实例详解 最近找遍了python的各个函数发现无法直接生成随机的二维数组,其中包括random()相关的各种方法,都没有得到想要的结果.最后在一篇博客中受到启发,通过列 ...
- 图解机器学习算法(6) | 决策树模型详解(机器学习通关指南·完结)
作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/34 本文地址:https://www.showmeai.tech/article-d ...
最新文章
- 行上下移动_这有一台你迟早要用到的“移动空调”
- Java实用教程笔记 类与对象
- jlink、DAPLink、J-Link OB资料整理
- [云炬创业学笔记]第一章创业是什么测试5
- linux centos安装git,centos下两种方法安装git–转载
- 信息学奥赛C++语言:语文成绩
- 三星明星机又悲剧了!万元折叠屏,玩不过2天,组团黑屏,蜜汁凸起
- 《Cacti实战》——2.3 Cacti的安装与配置
- topsis法_论文荐读|基于风险响应概念模型和改进TOPSIS模型的半干旱流域生态风险综合评价——以渭河流域为例...
- Windows更改系统字体
- VMware 中软盘镜像文件 *.flp 使用方法
- 第五人格显示服务器维护中请稍后登录怎么办,《第五人格》未知异常 请稍后重试登不上去如何解决...
- 【MyBatis基础】(09)- 逆向工程(代码自动生成)
- 阿里巴巴 29 个屌炸天的开源项目
- pwn unlink
- siki学院的飞机大作战UE4.26代码
- 机械--NX2007(UG)--间隙分析(干涉检查)
- SQL 实验项目6_存储过程
- ESP8266_MQTT协议
- Jmeter压力测试中的相关参数(QPS、TPS)
热门文章
- 7-基本数据类型和复合数据类型(引用数据类型)
- 袖珍电子书:一元实函数的微分定义
- 基本:HEX文件格式定义
- R语言--for循环语句的使用
- 红帽 Red Hat Linux相关产品iso镜像下载【百度云】【更新7.6】
- arm cache ace chi
- 计算机 dc代表什么意思,dc和ac代表什么意思
- 3D美术人员Technical Artist(TA技术美术)的学习之旅(3)
- ArrayList.toArray()的用法
- 计算机表格大小怎么调整,excel把表格拉大_excel调整单元格大小的方法步骤详解...