【问题标题】:How can I make a Base32 encryption work with the international alphabet/special characters?如何使 Base32 加密与国际字母/特殊字符一起使用?
【发布时间】:2017-06-21 14:47:49
【问题描述】:

我正在使用this javascript 程序来尝试编码/解码一些字符串。

这适用于某些字符串,但对于像这样的电子邮件我会得到无效的结果:

base32.encode("юзер@екзампл.ком.example.com");

输出:

9rvundefinedag206mxundefinedecundefinedw7wxjweundefinedy7gq6ay31dnr6rt9ecdqp

输入:

base32.decode(9rvundefinedag206mxundefinedecundefinedw7wxjweundefinedy7gq6ay31dnr6rt9ecdqpu");

结果:

"N7ªµÏ\Õ@@5;ªµÏ\×3Uk¹¼?;.;Uk¹¾<.example.com"

如您所见,它在解码时不会产生原始字符串。不知道为什么。

【问题讨论】:

    标签: javascript encoding decoding base32


    【解决方案1】:

    юзер@екзампл.ком.example.com.
    它是 28 个字符,并非全是 ASCII(或一字节 utf-8)。

    但有几个输入字符是多字节 utf-8 字节。
    它是 42 个 utf-8 字节。

    Base32 编码的每个字节应该是两个字符。

    9rvundefinedag206mxundefinedecundefinedw7wxjweundefinedy7gq6ay31dnr6rt9ecdqp
    是 76 个字符,预期长度明显错误。

    预期的 Base32 编码应该是 84 个字符。

    这可能是因为有几个输入字符是多字节 utf-8 字节。

    问题中似乎缺少某些东西。

    【讨论】:

      猜你喜欢
      • 2012-11-16
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多