Я нашел ответ, который почти решает мою проблему:
https://stackoverflow.com/a/5717191/1065546
Этот ответ демонстрирует, как кодировать BigInteger в строку, а затем обратно в BigInteger с использованием кодировок Base64, использующих кодек Apache commons-codec.
Есть ли способ кодирования метода / метода для String в BigInteger, а затем обратно в String?
если так, то кто-нибудь, пожалуйста, объясните, как его использовать?
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
(Вывод является лишь примером, и привет миру не нужно декодировать в этот BigInteger)
EDIT
Более конкретно:
Я пишу алгоритм RSA, и мне нужно преобразовать сообщение в BigInteger, чтобы я мог затем зашифровать сообщение с помощью открытого ключа (отправить сообщение), а затем расшифровать сообщение с помощью закрытого ключа и затем преобразовать число обратно в строку.
Я хотел бы получить метод преобразования, который мог бы производить наименьший BigInteger, поскольку я планировал использовать двоичный файл, пока не понял, насколько нелепым будет большое число.