公钥私钥

对称加密
	用同一个密钥进行加密和解密
公钥和私钥
	非对称加密算法(用一对密钥,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());
}

  

posted @ 2023-01-07 12:55  smatterer  阅读(65)  评论(0)    收藏  举报