在想知道数字证书是什么之前,我们先了解什么是数字签名,以及数字签名和数字证书的关系。
数字签名
数字签名的原理
基本原理:用私钥去加密,用公钥去解密。即签发人用不公开的私钥去签署文件即生成数字签名,全世界任何人都可以用签发人公布的公钥去验证它的数字签名,如果验证解密成功,就认定这个数字签名的确是签发人签署的。
数字签名的应用
数字签名是公钥加密技术的两大应用之一。这两大技术分别是数字签名和加密通信,而且它们有一定的对称性。
在加密通信下,公钥加密(加密算法),私钥解密(解密算法)。私钥也叫解密key。
而在数字签名下,私钥加密(签名算法),公钥解密(验证算法)。公钥叫验证key。
非对称加密:
一对公钥私钥,公钥加密的信息只有私钥才能解密。私钥加密的信息只有公钥可以验证(确认是被私钥加密过的)
数字签名的作用
数字签名的作用是用来认证签署人身份。
String SignFile(File file , PrivateKey pk); //签名算法
bool CheckFile(File file, String signature ,PublicKey key); //验证算法
数字签名的三大作用
1、认证(确认身份)
2、防止抵赖
3、防止篡改(保证文件完整性)
比特币就是数字签名
数字证书