java实现RSA算法

afeiluo 2012-10-19 08:56:21
现在要用java实现RSA算法,但是现在公钥是已知的(放到一个文件里,不是通过随机生成的),现在怎么通过java的api来算私钥。
public static void generateKey() throws Exception {
KeyPairGenerator gen = KeyPairGenerator.getInstance(RSA);
gen.initialize(512, new SecureRandom());
KeyPair keyPair = gen.generateKeyPair();
uk = keyPair.getPublic();
rk = keyPair.getPrivate();
}
上面的代码部分的密钥对是随机生成的,现在要根据已知的公钥来生成私钥 ,该怎么弄?
...全文
360 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
aaaabbbccd9876 2012-10-20
  • 打赏
  • 举报
回复
没分了。在这问个问题

服务端
import java.net.*;
import java.io.*;
import java.util.*;
class fanserver
{
static List<fanclient> client = new ArrayList<fanclient>();
public static void main(String[] args)throws Exception
{
Socket s;
ServerSocket ss = new ServerSocket(4445);
while(true){
s = ss.accept();
System.out.println("haha...");
server ser = new server(s);
new Thread(ser).start();
client.add(ser);
}
/* BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bwout =
new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
BufferedReader brin =
new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = null;
while((str=brin.readLine())!=null){
// System.out.println(str);
bwout.write(str);
bwout.flush();
bwout.newLine();
}
*/

// s.shutdownOutput();


}
}
class server implements Runnable
{
private Socket s;
server(Socket s){
this.s = s;
}
public void run(){
try{

BufferedWriter bwout =
new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
BufferedReader brin =
new BufferedReader(new InputStreamReader(s.getInputStream()));

String str = null;
while((str=brin.readLine())!=null){
System.out.println(str);
bwout.write(str);
bwout.newLine();

bwout.flush();
}
// s.shutdownOutput();

}
catch(Exception e){}
}
}
客户端

import java.net.*;
import java.io.*;
class fanclient
{

public static void main(String[] args)throws Exception
{
Socket s = new Socket("192.168.30.129",4445);
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bwout =
new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
BufferedReader brin =
new BufferedReader(new InputStreamReader(s.getInputStream()));
new Thread(new client(brin)).start();
String str = null;
while((str=br.readLine())!=null){

bwout.write(str);

bwout.newLine();
bwout.flush();

}

// s.shutdownOutput();

// String line = brin.readLine();
// System.out.println(line);


}
}
class client implements Runnable
{
private BufferedReader brin;
client(BufferedReader brin)
{
this.brin = brin;
}
public void run(){
String line = null;
try{
while((line=brin.readLine())!=null){
System.out.println(line);
}
}catch(Exception e){}
}
}

我同时启动好几个客户端,想让客户端通过服无端互相接收到信息,怎么处理,
afeiluo 2012-10-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

没看懂
[/Quote]
意思就是,不然它随机产生密钥对,通过读文件里面事先准备好的密码 来加密要怎么写.
aimsgmiss 2012-10-19
  • 打赏
  • 举报
回复
没看懂

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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