首先明确一点,公钥和私钥是成对出现的。一个负责加密,另一个负责解密。公开的就是公钥,自己留着的就是私钥。所以不管加密还是解密密钥都是可以是公钥或者私钥的。
所以如果别人发东西给我,我就需要把加密密钥给别人,解密密钥自己藏着,这样就是公钥加密,私钥解密。
如果我想让别人确认我的身份,我就需要把解密密钥给别人,加密密钥自己留着,给自己加密,别人获得密文后用我的解密密钥才可以解密。所以这里就是公钥负责解密,私钥负责加密。
例如服务器证书,一个证书中通常包含很多字段,其中包括:
- Web 站点的名称和主机名;
- Web 站点的公开密钥;
- 签名颁发机构的名称;
- 来自签名颁发机构的签名。
浏览器收到证书时会对签名颁发机构进行检查。如果这个机构是个很有权威的公共签名机构,浏览器可能已经知道其公开密钥了(浏览器会预先安装很多签名颁发机构的证书),然后用公钥解密,获得相关信息,例如获得证书里面的Web站点的名称和主机名,看看与当前浏览器的地址栏中的地址是否匹配,不匹配的话,浏览器就会给出警告(你可能看到过),提示当前证书是颁给xxx域名的,不是给当前域名的,让你注意。
网友评论