简体   繁体   English

如何使用Java生成电子邮件以获取公钥和私钥

[英]How to Generate Email to Get Public and Private Key Using Java

I want to get public key like this. 我想要这样的公钥。 Is java can do it? 是Java可以做到吗? for example i input name, email, and password. 例如,我输入名称,电子邮件和密码。 so java generate it's to public and private key. 因此,java生成了它的公共和私有密钥。 this example of public key 此公钥示例

-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: http://openpgpjs.org
xsBNBFU9xmABCAC/9KabOlwoa+OdFAWkMt9blHeg9dggGCdwrAr66/E+5zqJ
reintA7h7cVphdyOiRvMZjxHK80Osdb0F/3ywHoyPiZtOsBk3NgaCCvKz5ai
8rQzbOg+ge0LAs0/rbH+BWh/6aCOwTAymDVo7QrJedNZsQTtJ1qFRK8qoRkS
nMlG5qjZuRSOAK5sqEAReT3jWGvpcRh2A+IM8RxC02ijxA+57qN0ncahV2E+
0ROCe20mW9Wo2tUONV418UsuZzaGmcfThW6JJPMKeCAeQseV/J/BvcK7NSOi
u6dwBWZqOP1/LTtbFOLoLaeeNSc3KhopuRDpYNCWZej099T/zugJVQ5fABEB
AAHNGktveWFtYSA8aGltaXRzdUB5YWhvby5jb20+wsByBBABCAAmBQJVPcZh
BgsJCAcDAgkQOSpK7V+SVG8EFQgCCgMWAgECGwMCHgEAAG8mCACqAyCglWDU
I/zhq/5PJO7FRuhj3yU93Vju99z+E/0dQzUGgGAYtdzUxhAKk0ny9ZXC3FSa
LboXY8GlgkcmEyzyDKAstLXv7//Se7a1dMcI9yluYLOCNo7z4h0o8MBAg3K2
jU0iPtEqiGBk2+4Iy5Sh0uGoeE6uq0JauL5Uq6P2aZWepf1ZIQrVbFYHcez4
W1JBnGFmb57ovUq1BvRYl5MJQcvqzXpLN8ZE1ZpMw8u3osMljV1Z4DaAd9bu
y+S4gF2Toyz8cr9DUIfyG5i5lh6Pxj7XT3dMeOQa/ZygrtZZt5DP0TDIN3s8
7xSvKFFMym9v9S9B9LsqaMnYig8tX3MBzsBNBFU9xmABCACvxd9JpfiyJZw1
MFr9c/DcUXMkE+pWWWTSybR/5b60BtIWu5mi9IDD3dtcrjiJzBuBYvxHAzS2
AlYM0qEhyDlKhWYKqZW/xGaZcqNUCRCWzG4eplaSOQbJC84n/d2Qg5mebwgO
mtjoJ0C+5TgwkLdYd8TnWtkulqRW5Wsgk1LIZMvAWzQNc8eNR5uLaXbNckK1
PG6/9myBJSKOhJcSg0mHbcleF6egFfthg6tRXTm2EgHTlNnkRUTSDx3OhCT6
DEQDmDo92lAs1ocJrBXUNRCMGgNrsowsi0pvmEJY2eBQkb4syUh7YzfeIdYw
eQo60AwA/yazFqwlZvmUDgMtXcNBABEBAAHCwF8EGAEIABMFAlU9xmIJEDkq
Su1fklRvAhsMAABhOAf9FujFEEv8DfK4wHP3m+VUtOl6TOcK3oDnuw+wO+Jb
VyURM0BktLK4NtCD2q8l8+3W9MaOFQ2nFmf5bnFTghvItRcuMmWJF+vyLlIv
QhfpAPMVjFnQjsVr8fYd3t+kep+Hw2ihPBXaHxyESUxA5QRiRuPs56yLFUK7
horcHsDXl3I8+FyW3iQ2eBgk5+9d97va1ZxjUvNDZDm8fDvBKyRT3As4QBbF
DPI26u+v89EfAI3Q2HZwt08vhu8TkjK2y/wZYT9ihruzDfdR/XXExCwUq/rx
WhaKXDwc9fuqhU9wSNadjKVPytW9vkro9i4PgW7zRy+NepfWNlrP7R9jxLc+
2w==
=wGlq
-----END PGP PUBLIC KEY BLOCK-----

You can do this with the Bouncy Castle Crypto APIs, https://www.bouncycastle.org . 您可以使用Bouncy Castle Crypto API( https://www.bouncycastle.org)进行此操作

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(1024);
KeyPair key = keyGen.generateKeyPair();
PrivateKey priv = key.getPrivate();
PublicKey pub = key.getPublic();
String privateKey = new String(Base64.encode(priv.getEncoded(), 0,priv.getEncoded().length, Base64.NO_WRAP));
String publicKey1 = new String(Base64.encode(pub.getEncoded(), 0,pub.getEncoded().length, Base64.NO_WRAP));
String publicKey = new String(Base64.encode(publicKey1.getBytes(),0, publicKey1.getBytes().length, Base64.NO_WRAP));

As far as adding things like name, email and password, you are referring to generating a certificate, which requires that a key pair is generated. 至于添加名称,电子邮件和密码之类的内容,您指的是生成证书,这要求生成密钥对。 Certificate types vary depending on usage, as does the means to generate them. 证书类型取决于用法,生成方法也不同。

If you wish to truly secure communications, http://www.amazon.com/Applied-Cryptography-Protocols-Algorithms-Source/dp/0471117099/ is an important read, since poorly generated certificate and key exchanges are worse than no cryptography at all. 如果您希望真正保护通信安全, 阅读http://www.amazon.com/Applied-Cryptography-Protocols-Algorithms-Source/dp/0471117099/ ,因为生成不良的证书和密钥交换比没有加密时更糟所有。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM