解决方案

首页 > 解决方案 > 正文内容

数字签名详解(6.数字签名)数字签名知识,学会了吗,

wangqiang9个月前 (12-19)解决方案205

数字签名

数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是使用了颗粒机公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。

1.6.1 简单认识

相信我们都写颗粒机过信,在写信的时候落款处总是要留下自己的名字,用来表示写信的人是谁。我们签的这个字就是生活中的签名:

而数字签名呢?其实也是同样的道理,他的含义是:在网络中传输数据时候,给数据添加一个数字签名,表示是谁颗粒机发的数据,而且还能证明数据没有被篡改。

OK,数字签名的主要作用就是保证了数据的有效性(验证是谁发的)和完整性(证明信息没有被篡改)。下面我们就来好好地看一下他的底层实现原理是什么样子的。

1.6.2 基颗粒机本原理

为了理解得清楚,我们通过案例一步一步来讲解。话说张三有俩好哥们A、B。由于工作原因,张三和AB写邮件的时候为了安全都需要加密。于是张三想到了数字签名:

整个思路是这个样子的:

第一步:加密采用非对称颗粒机加密,张三有三把钥匙,两把公钥,送给朋友。一把私钥留给自己。

第二步:A或者B写邮件给张三:A先用公钥对邮件加密,然后张三收到邮件之后使用私钥解密。

第三步:张三写邮件给A或者B:

(1)张三写完邮件,先用颗粒机hash函数生成邮件的摘要,附着在文章上面,这就完成了数字签名,然后张三再使用私钥加密。就可以把邮件发出去了。

(2)A或者是B收到邮件之后,先把数字签名取下来,然后使用自己的公钥解密即可。这时候取下来颗粒机的数字签名中的摘要若和张三的一致,那就认为是张三发来的,再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。

上面的流程我们使用一张图来演示一下颗粒机

首先把公钥送给朋友A和B:

还有就是最后一个比较麻烦的,张三给A或者B发邮件:

1.6.3 数字证书

上面提到我们对签名进行验证时,需要用到公钥。如果公钥是伪造的,那我们无法验证数字签名了,也就根本不可能颗粒机从数字签名确定对方的合法性了。这时候证书就闪亮登场了。我们可能都有考各种证书的经历,比如说普通话证书,四六级证书等等,但是归根结底,到任何场合我们都能拿出我们的证书来证明自己确实已经考过了普通话,考过颗粒机了四六级。这里的证书也是同样的道理。

如果不理解证书的作用,我们可以举一个例子,比如说我们的毕业证书,任何公司都会承认。为什么会承认?因为那是国家发得,大家都信任国家。也就是说只要是国家的认证机构,我们颗粒机都信任它是合法的。

那么这个证书是如何生成的呢?我们再来看一张图:

此时即使张三的朋友A把公钥弄错了,张三也可以通过这个证书验证。

1.6.4 网页加密

我们看一个应用“数字证书”的实例:https协议。这个颗粒机协议主要用于网页加密

首先,客户端向服务器发出加密请求。

服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端。

客户端(浏览器)的“证书管理器”,有“受信任的根证书颁发机构”列表。客户端会颗粒机根据这张列表,查看解开数字证书的公钥是否在列表之内。

如果数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用,浏览器会发出警告。

如果这张数字证书不是由受信任的机构颁发的,浏览器会发出颗粒机另一种警告。

如果数字证书是可靠的,客户端就可以使用证书中的服务器公钥,对信息进行加密,然后与服务器交换加密信息。

1.6.5 代码实现

import java.security.*; importcom.su颗粒机n.org.apache.xml.internal.security.utils.Base64;public class SignatureDemo { public static void main(String颗粒机[] args) throws Exception { String a = "123"; PublicKey publicKey = RsaDemo.loadPublicKeyFromFi颗粒机le("RSA", "a.pub"); PrivateKey privateKey = RsaDemo.loadPrivateKeyFromFile("RSA", "a.pri"); S颗粒机tring signaturedData = getSignature(a,"sha256withrsa", privateKey); boolean b = verifySignature(a, "sha颗粒机256withrsa", publicKey, signaturedData); } /** * 生成签名 * * @paraminput : 原颗粒机文 *@param algorithm : 算法 * @param privateKey : 私钥 * @return : 签名 * @throws颗粒机 Exception */ private static String getSignature(String input, String algorithm, PrivateKey priva颗粒机teKey) throws Exception { // 获取签名对象 Signature signature = Signature.getInstance(algorithm); // 初始化签名signat颗粒机ure.initSign(privateKey);// 传入原文 signature.update(input.getBytes()); // 开始签名 byte[] sign = signature.si颗粒机gn();// 对签名数据进行Base64编码 return Base64.encode(sign); } /** * 校验签名 * * @parami颗粒机nput : 原文 *@param algorithm : 算法 * @param publicKey : 公钥 * @paramsignaturedData 颗粒机: 签名 *@return : 数据是否被篡改 * @throws Exception */ private static boolean verifySignatu颗粒机re(String input, String algorithm, PublicKey publicKey, String signaturedData) throws Exception { // 获取签颗粒机名对象 Signature signature = Signature.getInstance(algorithm); // 初始化签名 signature.initVerify(publicKey); //颗粒机 传入原文 signature.update(input.getBytes()); // 校验数据 returnsignature.verify(Base64.decode(signaturedData))颗粒机; } }

1.12 keytool工具使用

keytool工具路径:C:\Program Files\Java\jre1.8.0_91\bin

常用命令:

生成keypair

keytoo颗粒机l -genkeypair

keytool -genkeypair -alias lisi(后面部分是为证书指定别名,否则采用默认的名称为mykey)

看看keystore中有哪些项目:

keytool -颗粒机list或keytool -list -v

keytool -exportcert -alias lisi -file lisi.cer

生成可打印的证书:

keytool -exportcert -ali颗粒机as lisi -file lisi.cer –rfc

显示数字证书文件中的证书信息:

keytool -printcert -file lisi.cer

直接双击lisi.cer,用window系统的内置颗粒机程序打开lisi.cer

1.12.1 生成私钥公钥

(1)生成密钥证书 下边命令生成密钥证书,采用RSA 算法每个证书包含公钥和私钥

创建一个文件夹,在该文件夹下执行如下命令行:

keytool -genk颗粒机eypair -alias guigu -keyalg RSA -keypass guigu -keystore guigu.jks -storepass guigu

Keytool 是一个java提供的颗粒机证书管理工具

-alias:密钥的别名 -keyalg:使用的hash算法 -keypass:密钥的访问密码 -keystore:密钥库文件名,xc.keystore保存了生成的证书 -storepass:密钥颗粒机库的访问密码

(2)查询证书信息

keytool -list -keystore guigu.jks

(3)删除别名

keytool -delete -aliasguigu -keystore guigu.jsk颗粒机

1.12.2 导出公钥

openssl是一个加解密工具包,这里使用openssl来导出公钥信息。

安装 openssl:

http://slproweb.com/products/Win32OpenSSL.颗粒机html

安装资料目录下的Win64OpenSSL-1_1_0g.exe

配置openssl的path环境变量,如下图:

本教程配置在C:\OpenSSL-Win64\bin

cmd进入guigu.jks文件颗粒机所在目录执行如下命令(如下命令在windows下执行,会把-变成中文方式,请将它改成英文的-):

keytool -list-rfc --keystore guigu.jks | openssl x50颗粒机9 -inform pem -pubkey

下面段内容是公钥

-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv颗粒机FsEiaLvij9C1Mz+oyAm t47whAaRkRu/8kePM+X8760UGU0RMwGti6Z9y3LQ0RvK6I0brXmbGB/RsN38PVnh cP8ZfxG颗粒机UH26kX0RK+tlrxcrG+HkPYOH4XPAL8Q1lu1n9x3tLcIPxq8ZZtuIyKYEm oLKyMsvTviG5flTpDprT25unWgE4md1kthRWXO颗粒机nfWHATVY7Y/r4obiOL1mS5bEa/ iNKotQNnvIAKtjBM4RlIDWMa6dmz+lHtLtqDD2LF1qwoiSIHI75LQZ/CNYaHCfZS 颗粒机xtOydpNKq8eb1/PGiLNolD4La2zf0/1dlcr5mkesV570NxRmU1tFm8Zd3MZlZmyv 9QIDAQAB-----END PUBLIC KEY----颗粒机-

将上边的公钥拷贝到文本public.key文件中,合并为一行,可以将它放到需要实现授权认证的工程中。

扫描二维码推送至手机访问。

版权声明:本文由木屑颗粒机_燃烧生物颗粒机那里有_生物质燃料颗粒机器设备发布,如需转载请注明出处。

转载请注明出处https://zqklj.cn/post/7350.html

分享给朋友:

相关文章

ai自动生成论文(ai文章自动生成网站(自动生成文章app))ai生成作文,不要告诉别人,

ai自动生成论文(ai文章自动生成网站(自动生成文章app))ai生成作文,不要告诉别人,

原标题:ai文章自动生成网站(自动生成文章app) 在现代社会,随着人工智能技术的不断发展,越来越多的领域开始受益于人工智能的应用。其中,一个备受瞩目的领域就是文章写作。传统的写作...

台州市房产信息网官网查询(有房丨重磅 台州全市商品房买卖合同实现网上在线查询)台州市房产信息查询平台,深度揭秘,

台州市房产信息网官网查询(有房丨重磅 台州全市商品房买卖合同实现网上在线查询)台州市房产信息查询平台,深度揭秘,

原标题:有房丨重磅 台州全市商品房买卖合同实现网上在线查询 台州市房管与征收事物中心和各县(市、区)房管部门在完成房屋交易历史数据整理、档案全面数字化扫描后,对全市房屋交易...

女朋友名字有个云字什么意思(“云签约”,真方便女孩因名字里一个字,影响了保研资格,妈妈后悔不已:是我害了她)女朋友名字带云叫什么好,干货分享,

女朋友名字有个云字什么意思(“云签约”,真方便女孩因名字里一个字,影响了保研资格,妈妈后悔不已:是我害了她)女朋友名字带云叫什么好,干货分享,

来源:人民网-人民日报海外版 王 鹏作(新华社发) 通过线上面签,商品房买卖双方不见面就能完成交易流程;有了电子劳务合同,企业用工实现一键签约;借助电子签名,用手机...

e签宝合同模板怎么下载(AI+电子合同:e 签宝的“AI想象力”)e签宝合同流程,干货分享,

e签宝合同模板怎么下载(AI+电子合同:e 签宝的“AI想象力”)e签宝合同流程,干货分享,

原标题:AI+电子合同:e 签宝的“AI想象力” AI,让To B生态变得更加开放。 从ChatGPT到Sora,生成式AI技术,不断刷新人们对AI能力边界的认知,也为电子签...

航天电器官网首页(航天电器:已开始使用区块链技术,主要用于电子签章业务,促进了公司业务发展母亲去世,戴玉强奔丧全程喜笑颜开,歌手杨光为其发声遭“围剿”)航天电器官网招聘,不看后悔,

金融界2月5日消息,有投资者在互动平台向航天电器提问:据公开信息披露,贵公司行业内不少企业运营管理中都实施了区块链技术,是否对贵公司维系现有客户关系产生了新挑战?是否影响了贵公司的市场竞争优...

身份证怎么挂失在手机上微信(身份证怎么弄成电子版的 身份证电子版扫描生成教程)身份证怎么挂失补办,不看后悔,

身份证怎么挂失在手机上微信(身份证怎么弄成电子版的 身份证电子版扫描生成教程)身份证怎么挂失补办,不看后悔,

原标题:身份证怎么弄成电子版的 身份证电子版扫描生成教程 风云扫描王是一款常见的扫描软件,可以用于将纸质文件扫描成电子版。下面是一个简单的身份证电子版扫描生成教程:...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
现在,非常期待与您的又一次邂逅做木屑颗粒机我们是认真的!

我们努力让每一台锯末颗粒机的邂逅总能超越期待