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

Posted 恒奇恒毅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java安全(JCA/JSSE):非对称加密相关的知识,希望对你有一定的参考价值。

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

基本步骤: 得到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[

以上是关于Java安全(JCA/JSSE):非对称加密的主要内容,如果未能解决你的问题,请参考以下文章

Java安全(JCA/JSSE):数字证书

java-信息安全-基于非对称加密,对称加密等理解HTTPS

Java加密与安全11-非对称加密算法

字符非对称加密传输-Java版

java结合node.js非对称加密,实现密文登录传参——让前后端分离的项目更安全

对称加密+非对称加密,实现数据安全传输