⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 createkeypair.java

📁 1、利用公钥密码技术实现对称密码技术密钥的分配; 2、利用所分配的对称密钥对通信内容进行加/解密;
💻 JAVA
字号:
import java.security.*;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;

public class CreateKeyPair 
{
	public static void main(String args[])
	{
		KeyPairGenerator keygen = null;
		KeyPair keys = null;
		String dir = null;
		
		//从命令行得到存放公钥和私钥钥的目录
		if(args.length!=1)
		{
			System.out.println("Usage: java CreateKeyPair Directory");
			return;
		}
		
		dir = args[0];

		//产生公钥和私钥
		try 
		{
			System.out.println("产生公钥和私钥...");
			keygen = KeyPairGenerator.getInstance("RSA");
			keygen.initialize(1024);		
			keys = keygen.generateKeyPair(); //生成密钥组
			System.out.println("产生公钥和私钥结束!");
		} 
		catch (NoSuchAlgorithmException e) 
		{
			e.printStackTrace();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	   
		//把公钥和私钥保存到磁盘
		try 
		{
			ObjectOutputStream out =
				new ObjectOutputStream(new FileOutputStream(dir + "\\myprikey.txt"));
			out.writeObject(keys.getPrivate());
			out.close();
			System.out.println("私钥保存到 " + dir + "\\myprikey.txt");
			
			out = new ObjectOutputStream(new FileOutputStream(dir + "\\mypubkey.txt"));
			out.writeObject(keys.getPublic());
			out.close();
			System.out.println("公钥保存到 " + dir + "\\mypubkey.txt");
			/*
			byte[] pubKeyBytes = keys.getPublic().getEncoded();
			FileOutputStream fos = new FileOutputStream(dir + "\\myprikey.txt");
			fos.write(pubKeyBytes);
			fos.close();
			byte[] priKeyBytes = keys.getPrivate().getEncoded();
			fos = new FileOutputStream(dir + "\\mypubkey.txt");
			fos.write(priKeyBytes);
			fos.close();
			*/
		} 
		catch (FileNotFoundException e) 
		{
			e.printStackTrace();
		} 
		catch (IOException e) 
		{
			e.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -