openssl dgst 消息摘要
来源:互联网 发布:用手机注册淘宝店铺 编辑:程序博客网 时间:2024/06/05 19:35
<openssl dgst> <fym0121@163.com>
介绍
消息摘要可以对任意长度的消息产生固定长度(16或20个字节)的信息摘要,理论基于单向HASH函数,根据消息摘要无法恢复出原文,所以是安全的;消息原文和消息摘要是一一对应的,所以又被称作指纹。
调用
dgst, md5, md4, md2, sha1, sha, mdc2, ripemd160 - message digests
openssl可以通过标准命令dgst或直接调用消息摘要,例如
E:\OpenSSL\foo>openssl dgst -md5 a.txtMD5(a.txt)= 6049d6013872759678435a04b1e0c4c0E:\OpenSSL\foo>openssl md5 a.txtMD5(a.txt)= 6049d6013872759678435a04b1e0c4c0
md5的结果是16个字节,“6049d6013872759678435a04b1e0c4c0”是16进制的表示方法,也可以使用二进制。
语法
openssl dgst[-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-c] [-d] [-hex] [-binary] [-out filename] [-sign filename] [-keyform arg] [-passin arg] [-verify filename] [-prverify filename] [-signature filename] [-hmac key] [file...]
[md5|md4|md2|sha1|sha|mdc2|ripemd160] [-c] [-d] [file...]
-c 分号(colons),16进制(HEX)表示方法中,在每个字节(每两个16进制数字)之间加入一个分号。E:\OpenSSL\foo>openssl dgst -md5 -c a.txtMD5(a.txt)= 60:49:d6:01:38:72:75:96:78:43:5a:04:b1:e0:c4:c0
-hex 十六进制表示方法,这也是默认的选项
-binary 输出结果是二进制
E:\OpenSSL\foo>openssl dgst -md5 -binary a.txt`I?8ru杧CZ编睦E:\OpenSSL\foo>openssl dgst -md5 -binary -out md5.binary a.txtE:\OpenSSL\foo>xxd md5.binary0000000: 6049 d601 3872 7596 7843 5a04 b1e0 c4c0 `I..8ru.xCZ.....
当使用二进制输出到屏幕上时,意料之中的乱码,-out 可以将结果输出到一个文件中,在用xxd查看结果,^_^
-hmac key 消息认证码(Message Authorization Code),生成消息摘要的同时,又使用key进行了加密(我也不知道是什么算法@_@)
E:\OpenSSL\foo>openssl dgst -hmac "123" -md5 a.txtHMAC-MD5(a.txt)= 5548903c81f04ec99afd4a73dd460d44
-sign filename 用私钥对消息摘要进行签名
E:\OpenSSL\foo>openssl dgst -md5 -sign rsa_pri.pem -out signed_md5.binary a.txt
-verify filename 用公钥对前面进行认证
E:\OpenSSL\foo>openssl dgst -md5 -verify rsa_pub.pem -signature signed_md5.binary a.txtVerified OK
其中,-signature 用于指定消息摘要签名后的文件,结果为“Verified OK” or "Verified Failure"
rsa私钥文件rsa_pri.pem的产生
E:\OpenSSL\foo>openssl genrsa -out rsa_pri.pem 1024Loading 'screen' into random state - doneGenerating RSA private key, 1024 bit long modulus..........++++++..............................................++++++e is 65537 (0x10001)
rsa公钥文件rsa_pub.pem的产生
E:\OpenSSL\foo>openssl rsa -in rsa_pri.pem -out rsa_pub.pem -puboutwriting RSA key
-prverify filename 用私钥文件进行验证
E:\OpenSSL\foo>openssl dgst -md5 -prverify rsa_pri.pem -signature signed_md5.binary a.txtVerified OK
算法介绍
openssl 手册也介绍,除非为了兼容性考虑,新的应用程序应使用sha1消息摘要算法。
md5 产生16字节数据
sha1产生20字节数据
E:\OpenSSL\foo>openssl dgst -sha a.txtSHA(a.txt)= efe6be521da0e06fcc940fde11decc3c5ce8a13aE:\OpenSSL\foo>openssl dgst -sha1 a.txtSHA1(a.txt)= 3b7ef90a7908a832dc925e2941329d8c16912928E:\OpenSSL\foo>openssl dgst -ripemd160 a.txtRIPEMD160(a.txt)= d82ad8351eda617af7c24c23189b4ef52c2697c0E:\OpenSSL\foo>openssl dgst -md5 a.txtMD5(a.txt)= 6049d6013872759678435a04b1e0c4c0
- openssl dgst 消息摘要
- OpenSSL命令---dgst
- OpenSSL: 消息摘要算法
- OpenSSL: 消息摘要算法
- OpenSSL EVP_md5 消息摘要
- OpenSSL消息摘要
- openssl dgst命令使用示例
- OpenSSL 消息摘要算法 以 MD5 为例
- 消息摘要
- OPENSSL sha256摘要 例程
- OpenSSL 信息摘要算法
- OpenSSL摘要生成测试
- openSSL学习笔记 信息摘要
- 生成消息摘要流程
- 消息摘要算法简介
- JAVA消息摘要用处
- Java Md5 消息摘要
- java消息摘要
- 常见的数据库连接字符串收集
- 打造WIN8 USB(8G低速U盘)移动版系统
- 【数据结构】归并排序
- 从那一天起,你就成了我的全部
- L - Light Bulbs 解题报告 (隐藏水题)
- openssl dgst 消息摘要
- Delphi 正则表达式语法(2): 或者与重复
- Android实现长时间等待界面
- 【phpcms-v9】会员模块index.php控制器文件分析:
- E - Easy Task 解题报告
- Ubuntu Server 安装 硬盘分区方案
- FCK水印配置
- yum安装及常遇问题解决
- c++学习--iostream.h和iostream 区别