Java非对称加密的源代码(RSA)

2014-11-14 21:00:38 · 作者: · 浏览: 24

  鉴于rsa加密的重要性和相关源代码的匮乏,经过整理特此贴出。需要下载bcprov-jdk14-123.jar。


  下载地址:www.bouncycastle.org/latest_releases.html


  import javax.crypto.Cipher;


  import java.security.*;


  import java.security.spec.RSAPublicKeySpec;


  import java.security.spec.RSAPrivateKeySpec;


  import java.security.spec.InvalidKeySpecException;


  import java.security.interfaces.RSAPrivateKey;


  import java.security.interfaces.RSAPublicKey;


  import java.io.*;


  import java.math.BigInteger;


  /**


  * RSA 工具类。提供加密,解密,生成密钥对等方法。


  * 需要到http://www.bouncycastle.org下载bcprov-jdk14-123.jar。


  *


  */


  public class RSAUtil {


  /**


  * 生成密钥对


  * @return KeyPair


  * @throws EncryptException


  */


  public static KeyPair generateKeyPair() throws EncryptException {


  try {


  KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA",


  new org.bouncycastle.jce.provider.BouncyCastleProvider());


  final int KEY_SIZE = 1024;//没什么好说的了,这个值关系到块加密的大小,可以更改,但是不要太大,否则效率会低


  keyPairGen.initialize(KEY_SIZE, new SecureRandom());


  KeyPair keyPair = keyPairGen.genKeyPair();


  return keyPair;


  } catch (Exception e) {


  throw new EncryptException(e.getMessage());


  }


  }