资源简介
java rsa非对称加密算法3个实例源代码
代码片段和文件信息
package com.zl.test1;
import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.security.spec.RSAPrivateKeySpec;
import java.security.spec.RSAPublicKeySpec;
import java.util.HashMap;
import javax.crypto.Cipher;
public class RSAUtils {
/**
* 生成公钥和私钥
* @throws NoSuchAlgorithmException
*
*/
public static HashMapject> getKeys() throws NoSuchAlgorithmException{
HashMapject> map = new HashMapject>();
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance(“RSA“);
keyPairGen.initialize(1024);
KeyPair keyPair = keyPairGen.generateKeyPair();
RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
map.put(“public“ publicKey);
map.put(“private“ privateKey);
return map;
}
/**
* 使用模和指数生成RSA公钥
* 注意:【此代码用了默认补位方式,为RSA/None/PKCS1Padding,不同JDK默认的补位方式可能不同,如Android默认是RSA
* /None/NoPadding】
*
* @param modulus
* 模
* @param exponent
* 指数
* @return
*/
public static RSAPublicKey getPublicKey(String modulus String exponent) {
try {
BigInteger b1 = new BigInteger(modulus);
BigInteger b2 = new BigInteger(exponent);
KeyFactory keyFactory = KeyFactory.getInstance(“RSA“);
RSAPublicKeySpec keySpec = new RSAPublicKeySpec(b1 b2);
return (RSAPublicKey) keyFactory.generatePublic(keySpec);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 使用模和指数生成RSA私钥
* 注意:【此代码用了默认补位方式,为RSA/None/PKCS1Padding,不同JDK默认的补位方式可能不同,如Android默认是RSA
* /None/NoPadding】
*
* @param modulus
* 模
* @param exponent
* 指数
* @return
*/
public static RSAPrivateKey getPrivateKey(String modulus String exponent) {
try {
BigInteger b1 = new BigInteger(modulus);
BigInteger b2 = new BigInteger(exponent);
KeyFactory keyFactory = KeyFactory.getInstance(“RSA“);
RSAPrivateKeySpec keySpec = new RSAPrivateKeySpec(b1 b2);
return (RSAPrivateKey) keyFactory.generatePrivate(keySpec);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 公钥加密
*
* @param data
* @param publicKey
* @return
* @throws Exception
*/
public
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-03-07 16:54 Security\
文件 364 2017-03-09 16:18 Security\.classpath
目录 0 2017-03-07 15:39 Security\.myeclipse\
目录 0 2017-03-07 15:39 Security\.myeclipse\profiler\
文件 1266 2017-03-07 15:39 Security\.myeclipse\profiler\TestMain.xm
文件 384 2017-03-07 15:30 Security\.project
目录 0 2017-03-07 15:30 Security\.settings\
文件 598 2017-03-07 15:30 Security\.settings\org.eclipse.jdt.core.prefs
目录 0 2017-03-09 16:18 Security\bin\
目录 0 2017-03-09 16:18 Security\bin\com\
目录 0 2017-03-09 16:18 Security\bin\com\zl\
目录 0 2017-03-09 16:18 Security\bin\com\zl\test1\
文件 6525 2017-03-09 16:18 Security\bin\com\zl\test1\RSAUtils.class
文件 2282 2017-03-09 16:18 Security\bin\com\zl\test1\TestMain.class
目录 0 2017-03-09 16:18 Security\bin\com\zl\test2\
文件 2576 2017-03-09 16:18 Security\bin\com\zl\test2\ba
文件 5086 2017-03-09 16:18 Security\bin\com\zl\test2\RSATester.class
文件 6733 2017-03-09 16:18 Security\bin\com\zl\test2\RSAUtils.class
目录 0 2017-03-09 16:18 Security\bin\com\zl\test3\
文件 4458 2017-03-09 16:18 Security\bin\com\zl\test3\ba
文件 2418 2017-03-10 21:14 Security\bin\com\zl\test3\MainTest.class
文件 9002 2017-03-09 16:18 Security\bin\com\zl\test3\RSAEncrypt.class
文件 2958 2017-03-09 16:18 Security\bin\com\zl\test3\RSASignature.class
目录 0 2017-03-09 16:18 Security\bin\com\zl\uuid\
文件 1120 2017-03-09 16:18 Security\bin\com\zl\uuid\Uuid.class
目录 0 2017-03-07 17:13 Security\doc\
文件 874 2017-03-07 17:13 Security\doc\privateKey.keystore
文件 222 2017-03-07 17:13 Security\doc\publicKey.keystore
目录 0 2017-03-09 16:18 Security\lib\
文件 4364 2017-03-07 15:56 Security\lib\javaba
目录 0 2017-03-09 16:16 Security\src\
............此处省略16个文件信息
- 上一篇:n阶幻方java代码
- 下一篇:Adobe PDF Library SDK
评论
共有 条评论