简体   繁体   中英

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? for example i input name, email, and password. so java generate it's to public and private key. 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 .

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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