一、介绍
:
RSA
算法的介绍:公钥加密、私钥解密
或私钥加密、公钥解密,这样们可以在终端软件
公开我们的公钥而不会影响安全性。
RSA
这种特点常用在电信、等行业数字签名中。
SHA-1
算法的介绍:
从一段字符串中计算出唯一标识这段字符串的信息摘要
(
160bit
位
=20
位字符)和
md5
算法类似。
RSA
、
SHA-1
算法在网上都有很详细的介绍不是本文介绍重点,本文重点介绍
RSA
算法在
完成加密解密及数字签名过程中用不同开发语言对接的问题(
java
与
c++
)对于其它开发语
言例如
vb
、
delphi
、
pb
等可以调用
c++
的
lib
、
dll
库文件来完成。
二、数字签名流程
1
、
A
构建密钥对,将公钥公布给
B1...B2
,将私钥保留。
2
、
A
使用私钥加密数据,然后对加密后的数据签名
(
签名算法:密文
=rsa(
明文,
privatekey)
,
Sgn=sha-1(
密文
) ,
发送给
B1..B2
;
B1..B2
使用
Sign
来验证待解密数据是否有效,
如果有效使用公钥对数据解密
rsa
(密文,
publickey
)
、
。
3
、
B1..B2
使用公钥加密数据
rsa
(明文,
publickey
)
,向
A
发送经过加密后的数据;
A
获得加密数据,通过私钥解密
rsa
密文,
privatekey)
。
4
、
数字只起到数据在网络传送中验证否被篡改过并保证加密数据的完整性。
而
RSA
数
据的安全是由
RSA
算法来完成的。
(工作流程图如下:
)