我找到了一个几乎解决我的问题的答案:https://dev59.com/21bTa4cB1Zd3GeqP-F0z#5717191
这个答案演示了如何使用Base64编码将BigInteger编码为字符串,然后再将其解码回BigInteger,它使用了Apache commons-codec。
是否有一种将字符串编码为BigInteger并将其解码回字符串的编码技术/方法?如果有,请有人解释如何使用它。
(The output is just an example and hello world doesn't have to decode to that BigInteger)
编辑:
更具体地说:
我正在编写RSA算法,需要将消息转换为BigInteger,以便我可以使用公钥加密消息(发送消息),然后使用私钥解密消息,然后将数字转换回字符串。
我希望有一种转换方法可以产生最小的BigInteger,因为我原计划使用二进制,直到意识到该数字会有多么巨大。
是否有一种将字符串编码为BigInteger并将其解码回字符串的编码技术/方法?如果有,请有人解释如何使用它。
String s = "hello world";
System.out.println(s);
BigInteger encoded = new BigInteger( SOME ENCODING.(s));
System.out.println(encoded);
String decoded = new String(SOME DECODING.(encoded));
System.out.println(decoded);
打印:
hello world
830750578058989483904581244
hello world
(The output is just an example and hello world doesn't have to decode to that BigInteger)
编辑:
更具体地说:
我正在编写RSA算法,需要将消息转换为BigInteger,以便我可以使用公钥加密消息(发送消息),然后使用私钥解密消息,然后将数字转换回字符串。
我希望有一种转换方法可以产生最小的BigInteger,因为我原计划使用二进制,直到意识到该数字会有多么巨大。
String.getBytes()
有什么问题吗?大多数加密实现接受字节数组而不是 BigIntegers,我认为。 - DNA