MCPcopy Create free account
hub / github.com/027xiguapi/code-box / base32ToHex

Method base32ToHex

utils/totp.ts:63–82  ·  view source on GitHub ↗

* Convert Base32 string to hexadecimal * @param base32 Base32 encoded string * @returns Hexadecimal string

(base32: string)

Source from the content-addressed store, hash-verified

61 * @returns Hexadecimal string
62 */
63 private static base32ToHex(base32: string): string {
64 const base32Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"
65 let bits = ""
66 const hex = []
67
68 base32 = base32.toUpperCase().replace(/=+$/, "")
69
70 for (let i = 0; i < base32.length; i++) {
71 const val = base32Chars.indexOf(base32.charAt(i))
72 if (val === -1) throw new Error("Invalid base32 character")
73 bits += this.leftPad(val.toString(2), 5)
74 }
75
76 for (let i = 0; i + 8 <= bits.length; i += 8) {
77 const chunk = bits.substr(i, 8)
78 hex.push(parseInt(chunk, 2).toString(16).padStart(2, "0"))
79 }
80
81 return hex.join("")
82 }
83
84 /**
85 * Left pad a string with zeros

Callers 1

generateTOTPAtCounterMethod · 0.95

Calls 1

leftPadMethod · 0.95

Tested by

no test coverage detected