我有問題,將事我知道在Ruby中的Javascript作品(node.js的在這種情況下,但我想在瀏覽器支持的解決方案,如果可能的話)的Javascript十六進制Base32編碼
給定十六進制格式的SHA256摘要的:通過運行一個快速例程十六進制轉換爲交流
"BMEN72AKJFEQVYDSFOJQN72TYWVTKUWRPECYCTTGRDXGFQ3T"
我可以在Ruby中做到這一點:
"0b08dfe80a49490ae0722b9306ff53c5ab3552d17905814e6688ee62c373"
將其轉換爲base32表示,看起來像這樣字符代碼字符串,然後base32編碼。我似乎無法在JavaScript中找到類似的方法。似乎沒有可靠的方法來獲取字符代碼或Base32編碼。
Ruby代碼作爲一個例子,我只是分塊的十六進制在超時1個字符,並做一個快速六角形>小數 - >字符轉換:
s = "0b08dfe80a49490ae0722b9306ff53c5ab3552d17905814e6688ee62c373"
s2 = s.scan(/../).map { |x| x.hex.chr }.join
s3 = Base32.encode(s2)
中介的字符串看起來像:
"\v\b\xDF\xE8\nII\n\xE0r+\x93\x06\xFFS\xC5\xAB5R\xD1y\x05\x81Nf\x88\xEEb\xC3s\x8AM"
'parseInt()'和'Number.prototype.toString()'函數都帶有一個可選的基本參數。他們不能處理那些大的數字。 – Pointy
看看https://github.com/agnoster/base32-js –
請記住,有幾個'base32'規範。它看起來像你使用[RFC 4648「base32」](https://tools.ietf.org/html/rfc4648#page-9),但我知道的大多數JS實現使用[RFC 4648「base32hex」]( https://tools.ietf.org/html/rfc4648#page-10)或[Douglas Crockfords Base32](http://www.crockford.com/wrmg/base32.html)。 –