问题标签 [base32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
681 浏览

python - 如何为 Base32 类使用不同的字母表?

当我这样做时,在 python 上:

我明白了DLGGJ2KRBQZM5DRU。在 Crypto++ 上:

我知道DMGGJ4MTBS3N7DTW这是错误的。

有没有办法可以在 c++ 中对上面的字符串进行编码并获得与 python 相同的结果?

0 投票
1 回答
355 浏览

php - 复制洋葱地址算法?

根据我能找到的所有来源,洋葱/隐藏服务“域”是由这个过程生成的:

我试图复制它,首先用 Scallion生成一个令人难忘的虚荣 URL,“zzzzzzycizaamf47.onion”。然后,我编写了一个 PHP 脚本,从该私钥派生出公钥,去除格式,散列,截断为 10 个字符,并对它进行 base32 编码。首先,我发现了三个不同的“编码为 base32”函数,它们都给出了不同的结果。这是代码,结果在三个函数后注释:

这里出了什么问题?为什么三个“base32”函数给出不同的结果?这是 crockford32_encode 的代码,这是 Base2n代码。我尝试了几乎所有格式/空白剥离和字符截断的组合,但从未接近所需的“zzzzzzycizaamf47”。

0 投票
1 回答
4012 浏览

ios - 无效的条形码 - Google Authenticator - iOS - 用 = 填充

我们在 iOS 上遇到了 Google Authenticator 的问题。我们正在使用以下标准代码片段来生成 TOTP 密钥

生成的代码在末尾用尾随 = 符号填充,如下所示。

6ICU5K45MHIZCMTR3DABCDFP7XSZGV4DVTRABCOPD5RDQRGOLTGQ====

然后我们会根据这个字符串生成一个合适的二维码,但是在某些设备上扫描它时会出现问题。此代码在 Android 上使用 Google Authenticator 工作,但在使用 iOS 版本时失败,并出现以下错误...

无效的条形码

条形码 'otpauth://totp/MyDomain:user@user.com?secret=6ICU5K45MHIZCMTR3DABCDFP7XSZGV4DVTRABCOPD5RDQRGOLTGQ%3D%3D%3D%3D&issuer=MyDomain' 不是有效的身份验证令牌条形码。

如您所见,尾随 = 填充被编码在秘密字符串中,这似乎会导致 iOS 上的错误。不知道为什么这在 iOS 上失败,但在 Android 上却没有,但这是我们需要添加的

这是 GA GitHub 上的一个老问题,似乎是同一个问题,但没有解决方案...... https://github.com/google/google-authenticator/issues/267

&这里有人通过在编码之前播种字符串来解决问题,但这 在Apple设备上的Google Authenticator上面的场景中不起作用,某些秘密无效

关于为什么或解决问题的可能方法的任何想法?

0 投票
2 回答
4190 浏览

java - TOTP Base32 与 Base64

我发现每个 TOTP 实现(甚至 RedHat 的 FreeOTP)都使用 Base32 编码/解码来生成秘密。为什么不使用 Base64,因为 Base32 使用了大约 20 % 的空间,而且它的主要优点是它更易于人类阅读?无论如何,它不会向用户显示生成。

虽然实现中的每条评论都说,它的实现遵循RFC6238 / RFC4226,但我在 RFC 文档中找不到关于 Base32 的任何内容。

由于传输数据的安全性,将其转换为 Base32 或 Base64 显然是有意义的,但为什么不直接使用 Base64 呢?

0 投票
1 回答
771 浏览

java - 使用 Base32 编码和解码字符串

我想使用 Base32 对字符串进行编码和解码。但是在使用Apache Commons Codec 1.11时出现错误

我已经使用了这个答案,但对我不起作用(链接)(链接2)。

这是我面临的错误 截图...

谢谢...!!!

编辑 :-

检查此屏幕截图

从这里下载的jar文件:点我

0 投票
2 回答
1971 浏览

javascript - 如何检查字符串是否在javascript中以base32编码

我需要检查 geohash 字符串是否有效,所以我需要检查它是否是 base32。

0 投票
3 回答
827 浏览

python - 使用 base64 库中的 b32decode 进行 base32 解码时忽略填充异常

在尝试使用 base64 lib 解码 base32 字符串时,我需要一种方法来忽略“不正确的填充”异常。

我看过这篇文章Python: Ignore 'Incorrect padding' error when base64 解码解决了 base64 (b64decode) 解码的问题。我试着做同样的事情(添加接受的填充的最大数量,如果我不是 msitaken,base32 是 6)像这样

但无论如何都会引发异常。

预期的结果是即使没有正确的填充,也会对 base32 字符串进行解码:

0 投票
1 回答
6621 浏览

python - 如何在 python3 中进行 Base32 编码?

python 2.7 中的 Base32 编码是这样工作的:

但是当我尝试在 python3 中做同样的事情时它失败了。为什么?

0 投票
2 回答
1449 浏览

python - 如何在python中结合使用base32和hotp(一次性密码)?

对于大学练习,我想用 python 开发一个简单的 hotp 服务器-客户端系统。在这种情况下,客户端向服务器发送密码和一次性密码。服务器知道秘密,计算当前的热点并比较它收到的值。到目前为止,一切都很好。使用纯文本,这可以很好地工作,并且计算的值与我使用 iOS 应用程序“OTP Auth”时得到的值相同。但也有可能结合 base32 计算 OTP。所以我添加了几行将明文编码为base32,但现在输出不正确。

假设我们使用秘密“1234”,所以明文输出将是“110366”。那行得通。但是,如果我将秘密编码为 base32,则输出应该是“807244”,但我的程序计算的是“896513”。有人知道为什么会这样吗?

我已经尝试使用不同的秘密并在不同的应用程序上进行了检查。总是一样的结果。

我希望 807244 作为输出,但输出是 896513

0 投票
2 回答
629 浏览

python - 在base32编码中无法让python跟随go

我正在尝试从 python 中复制 sha256 哈希的 base32 编码。我正在尝试复制 kube-router 为命名空间网络策略创建 ipset 名称的逻辑:https ://github.com/cloudnativelabs/kube-router/blob/736757d942f173e19566eea0a512dfa819699126/pkg/controllers/netpol/network_policy_controller.go#L1476

我只是无法让 python 产生相同的 base32 输出。我可能在做一些明显错误的事情。帮助!

去代码:

运行这个产生:

蟒蛇代码:

运行这个产生:

每个输出的第一行都同意,这很好。让我知道 sha256 校验和在每一侧的计算都是相同的。每一行的第二行都不同意,我不明白为什么——我在 python 代码中尝试了许多不同的 chksum 类型,但无济于事。每个中的第三行只是表明简单字符串的 base32 编码似乎在双方都有效。