Java加解密与数字签名2
解释:
首先,发送方产生**对,并公开 公钥;接收方根据这个公钥产生**对,然后也公开自己的 公钥。
然后,发送方根据接收方的 公钥 产生自己本地的**(本地**一般是采用对称**),接收方也根据发送方的 公钥 产生自己本地的**。其实,这样双方产生的本地**是相同的。
最后,双方就可以利用本地**进行加解密了。
RSA(基于因子分解):代码实现较为简单
初始化**(包含公钥、**)。
可以利用公钥加密,私钥解密;也可以私钥加密,公钥解密
使用过程:双方分别掌握公钥与私钥中的一种,然后就可以加密并传输数据了。
Java加解密与数字签名2
EIGamal(基于离散因数)
JDK没有实现,只能利用BC实现。
首先,Security.addProvider(new BouncyCastleProvider());
之后实现类似于RSA。
Java加解密与数字签名2
五.Java实现数字签名
数字签名用于鉴别数字信息,公钥和私钥,私钥对数据签名,公钥用于检验。
过程为:首先初始化一个**对,在**对的基础上进行签名与验证。
1、RSA:既可以加解密,也可以数字签名。
初始化**对:KeyPairGenerator、KeyPair、RSAPublic、PSAPrivate;
执行签名;Signature类
验证签名;Signature类
2、DSA(数字签名算法)
初始化**对,公钥、私钥;
执行签名,用私钥签名;
验证签名,用公钥验证;
3、ECDSA
微软***便是采用的ECDSA算法进行的签名。速度快,强度高,签名短。
初始化**对;
执行签名;
验证签名
**学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:521352947 我们一起学Java!* *

相关文章: