生成公钥和私钥流程
来源:互联网 发布:java图形界面教程 编辑:程序博客网 时间:2024/05/21 08:01
1.创建一个新的伪随机生成器对象并生成100字节的伪随机数,此随机数将用于生成DSA密钥对的一个种子。
2.用java.security.KeyPairGenerator的一个工厂化方法获取一个KeyPairGenerator对象。
3.用512比特的一个密钥长度和一个种子随机数初始化KeyPairGenerator对象。
4.由KeyPairGenerator对象生成KeyPair对象。
5.从KeyPair对象获取私钥和公钥,并将它们分别保存在文件DSApublic.key和文件DSAprivate.key中。
6.输出用base64编码格式表示。
举例:
public class GenKeys {
public static void main(String [] args) throws Exception {
SecureRandom sr = new SecureRandom();
byte [] pseudoRandom = new byte[100];
sr.nextBytes(pseudoRandom);
KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA");
System.out.println("Initializing the DSA key pair generator...");
kpg.initialize(512, sr);
System.out.println("Generating DSA key pair...");
System.out.println("This may take a while...");
KeyPair kp = kpg.generateKeyPair();
System.out.println("DSA Public Key:");
Key pubKey = kp.getPublic();
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("DSApublic.key"));
out.writeObject(pubKey);
out.close();
} catch (Exception e) {
System.out.println("Could not save public key...");
System.out.println(e);
}
byte [] pubkeyBytes = pubKey.getEncoded();
System.out.println("Public key format is: " + pubKey.getFormat());
BASE64Encoder encoder = new BASE64Encoder();
String base64 = encoder.encode(pubkeyBytes);
System.out.println(base64);
System.out.println("DSA Private Key:");
Key privKey = kp.getPublic();
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("DSAprivate.key"));
out.writeObject(privKey);
out.close();
} catch (Exception e) {
System.out.println("Could not save private key...");
System.out.println(e);
}
byte [] privkeyBytes = privKey.getEncoded();
System.out.println("Private key format is: " + privKey.getFormat());
BASE64Encoder encoder2 = new BASE64Encoder();
base64 = encoder.encode(privkeyBytes);
System.out.println(base64);
}
}
- 生成公钥和私钥流程
- Linux生成生成公钥和私钥 QT环境
- Git简单生成生成公钥和私钥方法
- Git简单生成生成公钥和私钥方法
- openssl生成私钥和公钥
- GIT 生成公钥和私钥
- git 生成公钥和私钥
- 生成RSA公钥和私钥
- Bitmap生成和释放流程
- 生成 apk 的流程和命令
- Apple Pay Merchant IDs配置流程与生成私钥说明文档
- 用 openssl 生成一对私钥和公钥
- 如何生成git的公钥和私钥
- 使用ssh-keygen生成私钥和公钥
- OpenSSL生成私钥和公钥以及RSA加密
- Mac iOS RSA 私钥和公钥的生成
- 使用OpenSSL生成RSA公钥和私钥
- golang 生成RSA公钥和私钥文件
- 新开窗口延迟打开
- Top 10 Reasons for Developers to Create Smart Clients
- 不关闭数据连接的严重后果
- 在 Internet Explorer 中使用 Windows 窗体控件
- Back to the Future with Smart Clients
- 生成公钥和私钥流程
- 编程牛人们
- 格式化函数的用法
- 程序员的爱情
- 抓屏的技巧
- 分析DFM文件生成界面
- 网络广告
- 漫谈SQL Server中的标识列(二)
- 智能客户端技术总结(二)