实际上,我正在尝试在我的应用程序中使用 TOTP,而 google 身份验证器要求密钥采用 base32 格式。这就是我尝试将密钥转换为 base32 格式的原因
假设我有一个数字 = 150820200825235。
这个维基百科页面说RFC-4648是最常用的 base32 字母表。
这是我试图将数字转换为基数 32 的 java 代码:
long key=150820200825235L;
String base32Key = Long.toString(key,32);
System.out.println(base32Key);
现在它正在将其打印为输出:
495e87tgcj
它包含 9,根据 RFC-4648 是无效的。
如何根据 Java 中的 RFC-4648 转换为 base32 数字?
另一件事 如果最广泛使用的 Base32 字母表确实符合 RFC-4648,那么为什么 java 不默认支持它呢?还是我的理解/代码有问题?