Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Arrays;
- import java.security.MessageDigest;
- /**
- * Converts a 64 characters long hex private key
- * into a base58 WIF private key (starts with a '5')
- */
- public class HexToWIF
- {
- public static byte[] getExtendedKey(String s)
- {
- int len = (s.length() / 2) + 1;
- byte[] data = new byte[len];
- data[0] = (byte) 0x80;
- for (int i = 0; i < s.length(); i += 2)
- {
- data[(i + 2) / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
- + Character.digit(s.charAt(i+1), 16));
- }
- return data;
- }
- public static void main(String[] args)
- {
- if (args.length != 1)
- {
- System.out.println("Wrong number of arguments");
- return;
- }
- byte[] extendedKey = getExtendedKey(args[0]);
- try {
- var sha = MessageDigest.getInstance("SHA-256");
- byte[] hash = sha.digest(extendedKey);
- hash = sha.digest(hash);
- extendedKey = Arrays.copyOf(extendedKey, 37);
- System.arraycopy(hash, 0, extendedKey, 33, 4);
- String privateKey = Base58.encode(extendedKey);
- System.out.println(privateKey);
- }
- catch (Exception e) {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement