Quando si costruisce un BigInteger con una stringa, la stringa deve essere formattata come un numero decimale. Non è possibile utilizzare le lettere, a meno che non si specifica una radice nel secondo argomento, è possibile specificare fino a 36 nella radice. 36 fornirà solo caratteri alfanumerici [0-9, a-z], quindi se lo usi, non avrai alcuna formattazione. È possibile creare: nuova BigInteger ("ihavenospaces", 36) Poi per convertire indietro, utilizzare un .toString (36)
ma per mantenere FORMATTING: Usare i tasti [] metodo di byte che un paio di persone menzionati.Questo impacchetterà i dati con la formattazione nella dimensione più piccola e ti consentirà di tenere traccia del numero di byte facilmente
Questo dovrebbe essere perfetto per un programma di esempio di crittografia a chiave pubblica RSA, supponendo che tu mantenga il numero di byte nel messaggio inferiore al numero di byte di PQ
(mi rendo conto questa discussione è vecchio)
Se ho capito i vostri commenti a destra, il tuo msg non è necessariamente un numero Credo che la maggior parte di noi credeva che msg fosse pensato per essere la stringa che rappresenta un numero (come "12345"). Ma quello che vuoi fare è convertire "ciao" in qualche numero ed essere in grado di ricostruire nuovamente la stringa originale. chiedendo perché si vorrebbe farlo ... IMO convertire la stringa in BigInteger in questo modo ha senso solo se si vogliono fare calcoli con il numero risultante, ma poi la conversione non avrebbe senso. Cosa mi manca? – Axel
in realtà sto facendo un programma su cryptosystem RSA ea tempo debito avevo bisogno di convertire msg in BigInteger (durante la registrazione) e di nuovo il processo inverso durante decription.but dovresti rispondere senza sapere il motivo per cui sto facendo perché ogni cosa puo ' essere spiegato qui – condinya