0

I'm trying to convert my key to a big integer or string in order to take the value of the key. I am currently attempting to convert it to string, where I used

String keyAsString = Base64.getEncoder().encodeToString(receiveKey.getData());

System.out.println(keyAsString);

However, my output is a gibberish of

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6+ew597p9xGvEjJDRp3pfs1Gjy5UdkhvowzOQeBrAAtNeLa90nAAKFaJEppnuxfudCq0uN6mtvstkQubmA48CL57ScbBGJDGnxnyeagBiFiLmLyG4ETG0Jy9Keu63JzkaN1tbKn6OFydagqzkESS62NfN8adgRHNQVSzQeYBFjwIDAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==

When I print out the public key, the output is

Sun RSA public key, 1024 bits modulus: 131299195463002215195329154870192371667344432008148874302996116714224964708229917223113454026144808551200135139817822182165252026686969926061551496173054324976472225390492516878760786130402059883104313320788015389521111743083669001615716568215520705969686885579227144800412281170037125266006383196172915328399

public exponent: 65537

My goal is to extract out random value from my public key. If there is any other ways to do this, please do advice me on it. Thank you.

Jeugasce
  • 197
  • 1
  • 3
  • 11
  • Call https://docs.oracle.com/javase/8/docs/api/java/security/Key.html#getEncoded--, then base64-encode the returned byte array. This is based on the guess that you're using a PublicKey instance, because you haven't told us what receiveKey.getData() is. – JB Nizet Nov 01 '17 at 07:34
  • sorry.. didnt mention what receiveKey.getData() is.. but you're right, its a publickey instance. – Jeugasce Nov 01 '17 at 08:15
  • I have a hard time understanding how you can pass it to encodeToString() then, since encodeToString() expects a byte array. – JB Nizet Nov 01 '17 at 08:17
  • its because receiveKey.getData() is actually from a DatagramPacket, which makes it a byte array. – Jeugasce Nov 01 '17 at 08:30
  • So, you question is in fact "how to send and receive a public key over UDP"? Post the actual question, and post all the relevant code. – JB Nizet Nov 01 '17 at 08:39

0 Answers0