我发现每个 TOTP 实现(甚至 RedHat 的 FreeOTP)都使用 Base32 编码/解码来生成秘密。为什么不使用 Base64,因为 Base32 使用了大约 20% 以上的空间,它的主要优点是,它更易于人类阅读?无论如何,它不会向用户显示。
虽然实现中的每条评论都表示其实现遵循RFC6238 / RFC4226,但我在 RFC 文档中找不到关于 Base32 的任何内容。
由于传输数据的安全性,将其转换为 Base32 或 Base64 显然是有意义的,但为什么不直接使用 Base64 呢?