繁体   English   中英

在Java中将BigInteger转换为Shorter String

[英]Convert BigInteger to Shorter String in Java

我正在寻找一种方法将BigInteger转换为非常短的字符串(尽可能短)。 转换需要是可逆的。 在这种情况下,转换的安全性并不是什么大问题。 有人会有他们如何解决这个问题的建议或样本吗?

您可以使用Base64编码。 请注意,此示例使用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);

打印:

4143222334431546643677890898767548679452
DC0DmJRYaAn2AVdEZMvmhRw=
4143222334431546643677890898767548679452

一种简单的方法是使用BigInteger.toString(Character.MAX_RADIX) 要反转,请使用以下构造函数: BigInteger(String val, int radix)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM