那里有RSA的JAVA库

cyforever 2003-10-19 09:06:44
可以免费下载的?
...全文
290 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyycyu 2003-10-24
  • 打赏
  • 举报
回复
sun就有!第三方的bouncycastle也是!
你得在java.security文件里面设置!
匪六哥 2003-10-24
  • 打赏
  • 举报
回复
以下是我原来写的一个安装的文档!请参考!

Bouncy Castle Crypto Package安装
1、 将bcprov-jdk14-120.jar复制到D:\j2sdk1.4.1_03\jre\lib\ext目录和D:\Program Files\Java\j2re1.4.1_03\lib\ext目录,如果再不行,就将其再复制到ext的上级目录下。
2、 将以上两个目录下的security子目录的java.security文件中增加security.provider.<n>=org.bouncycastle.jce.provider.BouncyCastleProvider,其中<n>根据前面几个提供者的序号递增,例如在j2sdk1.4.1_03中为6。
3、 这样,在java程序中就可以使用RSA加密算法了。

以下 摘自IBM开发者论坛的PublicExample.java程序,在没有安装成功Bouncy Castle提供者时运行提示错误如下:
Exception in thread "main" java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/ECB/PKCS1Padding
at javax.crypto.Cipher.getInstance(DashoA6275)
at PublicExample.main(PublicExample.java:24)

而在安装成功后就可以完好的执行。执行结果如下:
E:\security>java PublicExample "This is a test,这是一个测试!this is a test!"
Start generating RSA key
Finish generating RSA key
BouncyCastle Security Provider v1.19
Start encryption
Finish encryption:
This is a test,这是一个测试!this is a test!

源代码如下:
import java.security.*;
import javax.crypto.*;
//
// Public Key cryptography using the RSA algorithm.
public class PublicExample {

public static void main (String[] args) throws Exception {
//
// check args and get plaintext
if (args.length !=1) {
System.err.println("Usage: java PublicExample text");
System.exit(1);
}
byte[] plainText = args[0].getBytes("UTF8");
//
// generate an RSA key
System.out.println( "\nStart generating RSA key" );
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(1024);
KeyPair key = keyGen.generateKeyPair();
System.out.println( "Finish generating RSA key" );
//
// get an RSA cipher object and print the provider
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
System.out.println( "\n" + cipher.getProvider().getInfo() );
//
// encrypt the plaintext using the public key
System.out.println( "\nStart encryption" );
cipher.init(Cipher.ENCRYPT_MODE, key.getPublic());
byte[] cipherText = cipher.doFinal(plainText);
System.out.println( "Finish encryption: " );
System.out.println( new String(cipherText, "UTF8") );
//
// decrypt the ciphertext using the private key
System.out.println( "\nStart decryption" );
cipher.init(Cipher.DECRYPT_MODE, key.getPrivate());
byte[] newPlainText = cipher.doFinal(cipherText);
System.out.println( "Finish decryption: " );
System.out.println( new String(newPlainText, "UTF8") );
}
}

cyforever 2003-10-24
  • 打赏
  • 举报
回复
非常感谢 yannqi和flyycyu,我按照你的方法设置了我的jdk,但是很遗憾的是仍然没有成功,我用的是j2sdk1.4.1_01,应该没有什么问题吧。我不知道这是为什么,郁闷中。
匪六哥 2003-10-23
  • 打赏
  • 举报
回复
http://www.bouncycastle.org

这个第三方库里很全的!
cyforever 2003-10-23
  • 打赏
  • 举报
回复
具体一点好吗?
我编译时报错
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA
at javax.crypto.Cipher.getInstance(DashoA6275)
cyforever 2003-10-23
  • 打赏
  • 举报
回复
我已经从http://www.bouncycastle.org上下载了最新版的lcrypto-jdk14-120.zip,解压后将classes\org\bouncycastle\crypto下的.CLASS压成了.JAR的包,添加到classpath当中,但是仍然报
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA
at javax.crypto.Cipher.getInstance(DashoA6275)
请问大侠,我该怎么办?
谢谢!
flyycyu 2003-10-21
  • 打赏
  • 举报
回复
sun的加密api包里面不就有么!

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧