Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.security.MessageDigest;
  3.  
  4. /**
  5. * Converts a 64 characters long hex private key
  6. * into a base58 WIF private key (starts with a '5')
  7. */
  8. public class HexToWIF
  9. {
  10. public static byte[] getExtendedKey(String s)
  11. {
  12. int len = (s.length() / 2) + 1;
  13. byte[] data = new byte[len];
  14. data[0] = (byte) 0x80;
  15. for (int i = 0; i < s.length(); i += 2)
  16. {
  17. data[(i + 2) / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
  18. + Character.digit(s.charAt(i+1), 16));
  19. }
  20. return data;
  21. }
  22.  
  23. public static void main(String[] args)
  24. {
  25. if (args.length != 1)
  26. {
  27. System.out.println("Wrong number of arguments");
  28. return;
  29. }
  30.  
  31. byte[] extendedKey = getExtendedKey(args[0]);
  32.  
  33. try {
  34. var sha = MessageDigest.getInstance("SHA-256");
  35. byte[] hash = sha.digest(extendedKey);
  36. hash = sha.digest(hash);
  37. extendedKey = Arrays.copyOf(extendedKey, 37);
  38. System.arraycopy(hash, 0, extendedKey, 33, 4);
  39. String privateKey = Base58.encode(extendedKey);
  40. System.out.println(privateKey);
  41. }
  42. catch (Exception e) {
  43. }
  44. }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement