对称加密
用同一个密钥进行加密和解密
公钥和私钥
非对称加密算法(用一对密钥,A加密,B解密)
加密和解密的密码不一样,一个是公钥,一个是私钥
公钥和私钥成对出现
公开的密钥叫公钥,只有自己知道的叫私钥
用公钥加密的数据只有对应的私钥可以解密
用私钥解密的数据只有对应的公钥可以解密
公钥和私钥是相对的,两者本身并没有规定哪一个必须是公钥或者私钥
公钥和私钥作用加解密和加验签
加解密
假设B有一对公私钥,当A将自己的作业答案发给B时,用了B的公钥对这条信息进行加密
那么这个过程中想要抄作业的C就不能解开这条信息,只有具备私钥的B才可以解开这条信息
私钥加签公钥验签
加签目的是让消息接收方确认消息是由特定方发送的
私钥只存在B,也只有B才能对消息进行加签,这个过程叫签名
公钥去对加过签名的消息进行验签,确定消息的真伪
CA证书
解决问题
- 客户请求到达目标服务器过程中,被恶意服务器拦截代替发送伪造公钥
- 身份认证问题
![]()
![]()
Java生成公钥私钥
public static void main(String[] args){
int keySize=6;
KeyPairGenerator kpg;
try{
kpg=KeyPairGenerator.getInstance("RSA");
}catch(Exception e){
}
//初始化KeyPairGenerator对象,密钥长度
kpg.initialize(keySize);
//生成密钥
KeyPair keyPair=kpg.generateKeyPair();
//得到公钥
String publicKey=Base64.encodeBase64URLSafeString(keyPair.getPublic().getEncoded());
//得到私钥
String privateKey=Base64.encodeBase64URLSafeString(keyPair.getPrivate().getEncoded());
}