数字加密算法(简单的数字加密算法)

网友投稿 401 2022-10-07


数字加密算法(简单的数字加密算法)

一:数字签名简介

什么是数字签名?带有密钥(公钥,私钥)的消息摘要算法,用于验 证数据完整性,认证数据来源,以及抗否认。通俗来讲就是证明某个消息或 者文件 是本人发出/认同的,这个的话用于的面就比较多了。比如电子合同, 银行签约,电子授权等等。所以他的安全性是我们必须要考虑的。数字签名 中常用的签名算法有RSA、DSA、ECDSA等。

二:数字签名的基本过程

基本过程如下:

(1)发送方生成非对称加密算法的公钥和私钥对,并公布其公钥和签名算法(例如sha256WithRSAEncryption);

(2)发送方对发送的消息先计算其数字摘要,然后使用私钥对摘要进行加密,生成数字签名;

(3)接收方在接收到声称来自XXX的消息时,先去查询XXX的公布的公钥和签名算法;

(4)接收方使用公钥对数字签名解密并与计算出的数字摘要进行比对,如果比对一致,那么消息来自于XXX并且未被篡改。

上述过程的安全前提基于以下两点:

①发送方的签名算法无法被破解,且私钥未发生泄露

②接收方查询的公钥以及签名算法属实

三:在eclipse中分析DSA签名算法

(1)在主类Mainactivity中分析

分析这几个自定义方法:

getPublicKey(keyMap);//获取公钥 getPrivateKey(keyMap);//获取私钥 be.encode(publicKey));//公钥加密 be.encode(privateKey));//私钥加密 DSA.sign(data.getBytes(), privateKey);//讲私钥进行签名 DSA.verify(data.getBytes(), publicKey, sign)+"");//进行验证

(2)在自定义类DSA中分析

几个重要的方法

generateKeyPair:生成密钥对 getPublic获取公钥 getPrivate:获取私钥 X509EncodedKeySpec:根据给定的编码密钥创建一个新的X509EncodedKeySpec

小结

1、介绍数字签名系列相关的知识以及实现原理。

2、在eclipse中分析了DSA签名算法的代码。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java服务器宕机的解决方法论
下一篇:让人闻之色变的DDOS和CC究竟如何区分?看这里!(cc攻击和ddos的区别)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~