文章给大家介绍基于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教程相关推荐

  1. mybatis-plus雪花算法生成Id使用详解

    文章目录 前言 一.mybatis-plus官网 二.雪花算法实战 1.建表 2.新建测试工程 3.单元测试 三.实现分析 四.为什么默认就是雪花算法 五.主动设置Id生成策略 六.内置的雪花算法工具 ...

  2. php推荐码生成,最新最全PHP生成制作验证码代码详解(推荐),验证码详解_PHP教程...

    最新最全PHP生成制作验证码代码详解(推荐),验证码详解 1.0 首先先看代码 好,现在结合以上代码,来分析分析以上用到的几个函数: ① imagecreatetruecolor(); imagecr ...

  3. 决策树的生成-ID3算法生成_例题详解

    数据集: 判断特征集是否是空集,进行下一步 选择信息增益最大的那个特征作为根节点,以"有自己的房子"作为限定条件看其他特征 D1(有自己的房子)不确定性为0,以D2(没有自己的房子 ...

  4. php 算法 二进制文件,关于PHP二进制流 逐bit的低位在前算法(详解)_PHP教程

    复制代码 代码如下: /****************************************************** * 逐bit的低位在前算法 * @param $x * @retu ...

  5. python解析二维码_Python二维码生成识别实例详解

    前言 在 JavaWeb 开发中,一般使用 Zxing 来生成和识别二维码,但是,Zxing 的识别有点差强人意,不少相对模糊的二维码识别率很低.不过就最新版本的测试来说,识别率有了现显著提高. 对比 ...

  6. Php公钥加密data是空,php 生成加密公钥加密私钥实例详解

    php 生成加密公钥加密私钥实例详解 生成公钥私钥 win下必须要openssl.cof支持 liunx一般已自带安装 $config = array( //"digest_alg" ...

  7. python实验原理_Python实现蒙特卡洛算法小实验过程详解

    蒙特卡洛算法思想 蒙特卡洛(Monte Carlo)法是一类随机算法的统称,提出者是大名鼎鼎的数学家冯·诺伊曼,他在20世纪40年代中期用驰名世界的赌城-摩纳哥的蒙特卡洛来命名这种方法. 通俗的解释一 ...

  8. python随机生成二维列表_对python产生随机的二维数组实例详解

    对python产生随机的二维数组实例详解 最近找遍了python的各个函数发现无法直接生成随机的二维数组,其中包括random()相关的各种方法,都没有得到想要的结果.最后在一篇博客中受到启发,通过列 ...

  9. 图解机器学习算法(6) | 决策树模型详解(机器学习通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/34 本文地址:https://www.showmeai.tech/article-d ...

最新文章

  1. 行上下移动_这有一台你迟早要用到的“移动空调”
  2. Java实用教程笔记 类与对象
  3. jlink、DAPLink、J-Link  OB资料整理
  4. [云炬创业学笔记]第一章创业是什么测试5
  5. linux centos安装git,centos下两种方法安装git–转载
  6. 信息学奥赛C++语言:语文成绩
  7. 三星明星机又悲剧了!万元折叠屏,玩不过2天,组团黑屏,蜜汁凸起
  8. 《Cacti实战》——2.3 Cacti的安装与配置
  9. topsis法_论文荐读|基于风险响应概念模型和改进TOPSIS模型的半干旱流域生态风险综合评价——以渭河流域为例...
  10. Windows更改系统字体
  11. VMware 中软盘镜像文件 *.flp 使用方法
  12. 第五人格显示服务器维护中请稍后登录怎么办,《第五人格》未知异常 请稍后重试登不上去如何解决...
  13. 【MyBatis基础】(09)- 逆向工程(代码自动生成)
  14. 阿里巴巴 29 个屌炸天的开源项目
  15. pwn unlink
  16. siki学院的飞机大作战UE4.26代码
  17. 机械--NX2007(UG)--间隙分析(干涉检查)
  18. SQL 实验项目6_存储过程
  19. ESP8266_MQTT协议
  20. Jmeter压力测试中的相关参数(QPS、TPS)

热门文章

  1. 7-基本数据类型和复合数据类型(引用数据类型)
  2. 袖珍电子书:一元实函数的微分定义
  3. 基本:HEX文件格式定义
  4. R语言--for循环语句的使用
  5. 红帽 Red Hat Linux相关产品iso镜像下载【百度云】【更新7.6】
  6. arm cache ace chi
  7. 计算机 dc代表什么意思,dc和ac代表什么意思
  8. 3D美术人员Technical Artist(TA技术美术)的学习之旅(3)
  9. ArrayList.toArray()的用法
  10. 计算机表格大小怎么调整,excel把表格拉大_excel调整单元格大小的方法步骤详解...