Convert BigInteger to Shorter String in Java

后端 未结 2 1180
逝去的感伤
逝去的感伤 2021-01-13 11:52

I\'m looking for a way to convert a BigInteger into a very short String (shortest possible). The conversion needs to be reversible. The security of the conversion is not a b

相关标签:
2条回答
  • 2021-01-13 12:19

    One easy way is to use BigInteger.toString(Character.MAX_RADIX). To reverse, use the following constructor: BigInteger(String val, int radix).

    0 讨论(0)
  • 2021-01-13 12:41

    You can use a Base64 encoding. Note that this example uses Apache commons-codec:

    BigInteger number = new BigInteger("4143222334431546643677890898767548679452");
    System.out.println(number);
    
    String encoded = new String(Base64.encodeBase64(number.toByteArray()));
    System.out.println(encoded);
    
    BigInteger decoded = new BigInteger(Base64.decodeBase64(encoded));
    System.out.println(decoded);
    

    prints:

    4143222334431546643677890898767548679452
    DC0DmJRYaAn2AVdEZMvmhRw=
    4143222334431546643677890898767548679452
    
    0 讨论(0)
提交回复
热议问题