Java安全(JCA/JSSE):非对称加密

本文介绍了Java中非对称加密的概念,强调了其速度较慢但安全性高的特点。通过生成KeyPair对象,使用PrivateKey和PublicKey进行加密和解密操作。详细阐述了基本步骤,包括如何初始化Cipher并进行加密解密。同时,还讨论了如何将公钥和私钥保存为文件,并通过文件交换实现数据的安全传输。此外,提到了CipherInputStream和CipherOutputStream在加密解密过程中的应用。
摘要由CSDN通过智能技术生成

非对称加密也称为公钥加密。速度慢、加密和解密的钥匙不相同,某一个人持有私钥,任何人都可以知道公钥。

基本步骤: 得到keyPairGenerator的实例对象,并调用其generateKeyPair()方法创建KeyPair对象。 调用KeyPair对象的getPrivate和getPublic方法,分别得到PrivateKey对象和PublicKey对象。 得到Cipher的实例对象,并调用其init()方法指定PrivateKey对象或PublicKey对象,并指定要进行加密、还是进行解密操作。 调用Cipher对象的doFinal()方法完成加密或解密操作。

扩展步骤: 把公钥和私钥分别保存为公钥文件和私钥文件,把公钥文件传递给对方,对方用公钥文件对其他文件加密后,再把加密的结果文件传递回来,这边再用私钥文件解密。 单独使用CipherInputStream或CipherOutputStream都可以完成加密和解密操作,关键在于传入的Cipher对象的操作模式。

代码1:
		KeyPairGenerator keyGenerator = KeyPairGenerator.getInstance("RSA");
		KeyPair keyPair = keyGenerator.generateKeyPair();
		PrivateKey privateKey = keyPair.getPrivate();
		PublicKey publicKey = keyPair.getPublic();
		
		Cipher cipher = Cipher.getInstance("RSA");
		cipher.init(Cipher.ENCRYPT_MODE,publicKey);
		
		byte[] source = new byte[]{1,2,3,4};
		byte[
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值