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-信息安全-基于非对称加密,对称加密等理解HTTPS