Java非对称加密的源代码(RSA)计算机等级考试
文章作者 100test 发表时间 2010:01:08 20:20:11
来源 100Test.Com百考试题网
鉴于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()).
}
}