【发布时间】:2010-10-26 21:47:30
【问题描述】:
有没有什么巧妙的技巧可以在 python 中将二进制数分成五位数的组?
'00010100011011101101110100010111' => ['00010', '00110', '10111', ... ]
编辑: 我想编写一个密码/编码器以生成“易于通过电话阅读”令牌。标准base32编码有以下缺点:
- 可能会产生意外的 f*words
- 使用混淆字符,例如“I”、“L”、“O”等字符(可能与 0 和 1 混淆)
- 易于猜测的序列(“AAAA”、“AAAB”、...)
我能够用 20 行 python 编写自己的代码,谢谢大家。我的编码器去掉了“I”、“L”、“O”和“U”,结果序列很难猜。
【问题讨论】:
-
为什么你有一个数字作为基数 2 字符串?为什么不是一个实际的整数?
-
我需要编写编码器/密码来生成“易于通过电话阅读”令牌,我的第一个想法是某种 base32 编码,base32 中的每个数字都是 5 个二进制数字。
-
那就这么说吧。
base64.b32encode(yourstring).