From 51d0e60cf1aa56862b1b3cf680626015a07e5871 Mon Sep 17 00:00:00 2001 From: shuaiplus <2327005759@qq.com> Date: Thu, 12 Mar 2026 02:28:19 +0800 Subject: [PATCH] refactor: improve base32 normalization function for better readability and performance --- src/utils/totp.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/utils/totp.ts b/src/utils/totp.ts index f013630..48e9c10 100644 --- a/src/utils/totp.ts +++ b/src/utils/totp.ts @@ -3,7 +3,16 @@ const TOTP_DIGITS = 6; const TOTP_WINDOW = 1; // allow previous/current/next step for small clock drift function normalizeBase32(input: string): string { - return input.toUpperCase().replace(/[\s-]/g, '').replace(/=+$/g, ''); + const raw = String(input || '').toUpperCase(); + let out = ''; + for (const char of raw) { + if (char === ' ' || char === '\t' || char === '\n' || char === '\r' || char === '-') continue; + out += char; + } + while (out.endsWith('=')) { + out = out.slice(0, -1); + } + return out; } function base32Decode(input: string): Uint8Array | null {