Java offers features to generate public/private key pairs. The list of
available algorithms is:
DiffieHellman (Diffie-Hellman),
DSA (Digital Signature Algorithm),
RSA (Rivest, Shamir and Adleman, and
EC (Elliptic Curve).
public static KeyPair generateKeyPair(String algorithm, int keysize)
throws NoSuchAlgorithmException {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance(algorithm);
keyGen.initialize(keysize);
return keyGen.genKeyPair();
}
Considering the above method and the following:
KeyPair kp = generateKeyPair("RSA", 1200);
System.out.println(kp.getPublic());
System.out.println(kp.getPrivate());
The generated output is:
Sun RSA public key, 1200 bits
modulus: 9869434664406071422397837320764405182639187275838230993850845712119792960719253107137826291378531088798687188823076370201242339197879199249064933049166569948405393151733986369838996220598856887300012669754735304190978435430220593101694644244314877878605534096811338814490286832890418449631509846730240623970004851838612509884903198786095740146540225924110683179
public exponent: 65537
Sun RSA private CRT key, 1200 bits
modulus: 9869434664406071422397837320764405182639187275838230993850845712119792960719253107137826291378531088798687188823076370201242339197879199249064933049166569948405393151733986369838996220598856887300012669754735304190978435430220593101694644244314877878605534096811338814490286832890418449631509846730240623970004851838612509884903198786095740146540225924110683179
public exponent: 65537
private exponent: 1582133460247649211341863052809113033077609617772501866447914690198369544613218077476692601388877239100340381857198839515605719145107631831037065880564322197811115254773902693158497157951570638902393594757932655753965475860517442661157051743687056572748027450726509909507973409417657097270834672334740647227515714009141606345006585607294455971993731635917157153
prime p: 3256149439130022408436310311885111793464195858196258233187003768668905068326967709908800218408588778082838728236339782637613895789098072922267211467323843674447148299706221862611571
prime q: 3031014039405693160199592278696049712727614456472639744562120993703109441692657536297714688397058789187582744250860764288923138208010664879900484905834875292341824001685681393062249
prime exponent p: 651011277612961893552359339253103129983999242106681288881842476476931551799567540518104418295127008548139766179116532216925627912851550261691369331161699859106779135008478036312303
prime exponent q: 2314803602335998723791900653692051576540424968504998578742980573658152351590081974292947767962543135291937438889479715480185116658515674930251600928055012332834896823296306504785977
crt coefficient: 1264506160423420660013941104026558245174285118352499963549245021823942032361239666081851546710377637751263799087922801195636712628068424427135886836129544889379051273632748195244747
Very informative and helpful example of coding Private and Public digital signature keys. I used it and it works fine. Another helpful code may br found here http://docs.oracle.com/javase/tutorial/security/apisign/step2.html.
ReplyDeletethis is great. you rock man
ReplyDelete