2013-09-28 56 views
1

我有這段代碼來生成一個隨機密鑰。Base32編碼如何在Java中工作?

new BigInteger(130, random).toString(32); 

據我瞭解,該代碼的第一部分將創建一個130位,隨機整數。然後,將調用.toString(int radix)方法,該號碼將被轉換爲字母數字字符串。

我不明白的是哪些字母用於字符;換句話說,哪個鍵映射到哪個字符?

注:我期待如何Base 32 conversion可以發生,但我不能拿出任何有用的東西,因爲它似乎不是一個獨特的方法來做到這一點。

+8

在問這個問題之前你做了什麼研究?將維基百科條目與一點*微小的實驗結合起來應該會很明顯。 (只需爲0-31創建'BigInteger'值並在它們上調用'toString(32)'也會完成......) –

回答

2

javadoc說:

「由Character.forDigit提供的數字到字符的映射被使用,並且如果合適的話減號預先考慮」。

而後者的javadoc說:

「如果數字小於10,則 '0' +數字返回否則,值 'a' +數字 - 返回10。 「。

+0

我去了那裏,在第一次閱讀時沒有收到任何有用的東西。謝謝你:) – doplumi

+6

@domenicop - 它總是支付閱讀javadocs *仔細*。假設信息在那裏,你乍一看錯過了。 (通常是...) –