问题标签 [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 投票
3 回答
6348 浏览

c# - 随机数似乎不是很随机

我正在尝试生成 6 个字符或更少的随机 base32 数字。这应该提供大约 10 亿种不同的组合。

我创建了一个程序来生成这些“随机”数字。但是,它似乎平均每 40,000 代生成一个副本。

当有超过十亿种不同的组合时,为什么这些“随机”数字会如此频繁地重复?

这是我的代码:

0 投票
2 回答
5357 浏览

php - 如何在 PHP 中创建高效的编码/解码唯一 ID

我正在尝试找到一种将数据库 ID 编码为 short 的方法URL,例如 1 应变为“Ys47R”。然后我想将它从“Ys47R”解码回 1,这样我就可以使用该INT值运行数据库搜索。它需要使用数据库是唯一的ID。序列不应轻易猜到,例如 1 = "Ys47R", 2 = "Ys47S"。它应该类似于 YouTube 或 bitly 的URL'smd5我已经使用、和 `bcpow阅读了数百个不同的来源base32base64但结果都是空的。

这篇博文看起来很有希望,但是一旦我添加了填充和密码,短 ID,例如 1 变成了 SDDDG,2 变成了“SDDDH”,3 变成了“SDDDI”。这不是很随机。

base32仅使用 ab 0-9 base64结尾有 == 等字符。

然后我尝试了这个:

这有效,但意味着我每次都必须运行数据库查询以确保没有冲突并且它在数据库中不存在。

有没有一种方法可以创建ID's至少 4 个字符的短字符集,其中的字符集[a-z][A-Z][0-9]可以编码和解码回来,ID在每个数字都是唯一的数据库中使用增量唯一。我无法理解使用base32or的高级技术base64

或者我是否对此进行了太多研究,并且有更简单的方法可以做到这一点?最好做上面的随机字符串函数并查询数据库以检查唯一性吗?

0 投票
1 回答
5190 浏览

java - 将 protobuf 消息转换为 Java 中的字符串以实现持久性

我正在开发一个将所有数据存储在键/值对中的项目。键和值都是字符串。改变它超出了当前的范围。每个数据概念都由一个 protobuf 消息表示。

因此,我必须将 protobuf 消息存储为字符串。将消息存储为 message.toByteString().toString() 就足够了吗?或者我应该对字节 [] 进行编码,例如使用 Base32 编码?

编辑

使用 ByteString 进行持久性似乎不起作用:

解析协议消息时,输入意外在字段中间结束。这可能意味着输入被截断或者嵌入的消息误报了它自己的长度。

那么您是否建议在 m.toByteArray() 上使用 Base32 编码?请注意,将数据类型从 string 更改为 byte[] 目前超出了范围。

谢谢!

0 投票
1 回答
1477 浏览

python-2.7 - 如何计算字符而不是字节?

我有一些 uuid 作为 base32 编码字符串存储在数据库中,没有填充。它们的长度为 26 个字符。我正在尝试在 Python 2.7.5 中提取它们并将它们转换为二进制数据以用于不同的数据存储。问题出现在我的 Python DB 实用程序将这些 base32 字符串解释为每个字符 2 个字节的 unicode 时。这是代码:

输出是这样的:

文档说TypeError可能是由不正确的填充引起的。如您所见,有问题的字符串有 26 个字符,而不是 52 个,因此只有 4=用于填充,而不是它需要的 6。

如果我在控制台中尝试这个并粘贴相同的字符串,它会起作用,即使我在字符串文字前加上u. 我可以调用什么转换或方法来len返回正确的字符数?我尝试使用以下代码对其进行规范化和编码,但它仍然报告相同的长度并返回相同的填充。

尝试@Ignacio 提供的更简单的编码技巧也不能解决问题

使用'replace'or 'ingore',它仍然打印:Padding ANEMTUTPUZFZFH6ANXNW5IOI4U with length 52, mod 8 is 4

@dano 要求的附加信息:

print repr(row.uuid)显示字符串的 unicode 编码:

从中提取的数据库是Vertica(我认为是 7.x 系列)。我不确定它的字符集是什么,但列类型是VARCHAR(26). 它被PyODBC连接从数据库中提取出来。我没有在我的代码中的任何地方专门编码或解码数据。Vertica 数据库由不同的代码库填充,我只需使用 Python 将其提取出来。

以下是 Vertica 可以告诉我的有关表格列的所有信息:

0 投票
1 回答
63 浏览

encoding - 这个配置有多少个 URL?

我正在使用您的带有 Base32 编码的网址在短信中发送缩短的链接。URL 前面有一条消息,由于短信限制为 160 个字符,而我的消息大约是 140 个字符,因此我需要非常小心字符数。

我的问题是这个;如何使用 base32 编码计算可以容纳 4 个字符限制的 URL?

0 投票
1 回答
2327 浏览

mysql - 如何将base32解码为mysql中的字符串

我正在寻找一种方法将base32中加密的字符串解码回mysql中的原始字符串。我知道有一个 SP 可以使用 base64 执行此操作,但找不到 base32 的任何内容。

是否可以?我可以在某处使用存储过程吗?

有什么方法可以实现这一点?

谢谢!

0 投票
1 回答
43 浏览

c# - 加密输出美化器

我正在寻找一个选项,让加密的字符串成为键盘的简洁输入。

加密算法可能会有所不同(河豚、rijndael、蛇或其他算法)

到目前为止最好的解决方案是将加密结果转换为 base32 我将得到“AZ”、“2-7”和“=”作为填充,由我自己随机替换为“0;1;8”。
是否有任何其他选项可以仅从 base64 获取字母和数字,理想情况下是大写+数字或大写+小写+数字。

或者某种命名约定程序将加密的字符串转换为用户的美化输出,如果添加额外的字符则不是问题。

这不是通过为用户键入来进行估算的一种简单而简单的方法,与安全性有很大关系,但是该层在逻辑中更深,并且具有很好的功能。

先感谢您。

0 投票
3 回答
1306 浏览

vb.net - ASCII 到 Base32

我正在努力将我的 vb 项目中的文本框中的 10 个字符转换为 Base32。这是我的代码。我收到错误“字符串”类型的值无法转换为“字节()”。Windows应用程序2

0 投票
1 回答
386 浏览

base32 - 需要将十进制转换为基数 32,有什么问题吗?基数 32 = 0-9 AV

这是我在 c 中的代码,需要从十进制转换为基数 32。获取奇怪的符号作为输出。

基数 32 = 0-9 AV

0 投票
1 回答
1032 浏览

sorting - 我可以对 base32/64 编码的 MD5 哈希进行 alpha 排序吗?

我有一个巨大的十六进制编码的 MD5 值文件,我正在使用 linux 'sort' 实用程序进行排序。结果是哈希按顺序出现(这是我下一阶段处理所需要的)。例如:

为了加快排序操作(并使文件更小),我正在考虑将数据编码为 base32 或 base64。

问题是,base32/64 数据的 alpha 排序会得到相同的结果吗?我的快速测试似乎表明它会起作用。例如,上面三个十六进制字符串与这些 base64 字符串 1:1 对应:

但我不确定 Base64 中使用的特殊字符(如“/”和“+”)的排序顺序,以及在 alpha 排序的上下文中如何处理这些字符。

注意:我碰巧正在使用 linux 排序实用程序,但这个问题仍然适用于其他 alpha 排序工具。使用的工具并不是问题的一部分。