javascript - 使用 JavaScript 的 md5 的较短版本..?

标签 javascript json md5

我在 JSON 文件中有一个 arrayobjectobject 没有唯一的 id,所以我需要创建一个唯一的 id 或一个唯一的 string.

[
  {
    "name": "Jack Potts",
    "age": "56"
  }, {
    "name": "Rusty Carr",
    "age": "31"
  }
]

我知道我可以使用 MD5 ,传入 object,但我打算在 URL 中使用 string,所以我希望它更短。

而不是/people/3449c9e5e332f1dbb81505cd739fbf3f,我更喜欢/people/1dbb81505

它仍然需要是 object 的表示,因为我要再次从 URL 中查找这个人。

有什么东西可以生成比 MD5 string 更短的 string..?

我猜 MD5 是我最好/唯一的选择,但我想我会问。

更新

我可能没有我应该的那么清楚。我不仅需要生成唯一的 id。我不会用我生成的任何内容更新 JSON 文件。

我需要一种方法来获取有问题的 object,为它创建一个 URL,然后在访问该 URL 时使用该 URL 返回到该 object 数组

据我所知,如果您将相同的 string 传递给 MD5一遍又一遍,它将始终返回相同的 MD5 string,因为它是一个表示。出于同样的原因,人们在将密码存储在数据库中时不会使用它吗?

也许 MD5 没问题,我只是认为可能有一些东西可以生成更短的 string,它是数据的表示。这是我的问题。

更新 2

数组 中的人可能会改变。人员可能会被添加和删除,因此使用 array 索引将不起作用。

最佳答案

如果您只想要比 MD5 更短的输出,但对唯一性感到满意,只需 chop 到您需要的长度,每个位与任何其他位一样随机,即您选择的位的任何子集都一样好与任何其他子集一样。

但请注意,如果两个名称相同,您将获得相同的哈希值。

由于您必须意识到哈希越短,冲突的变化就越大,因此您在哈希长度与唯一性之间进行权衡,这并不坏,只要确保您有足够的唯一性来满足您的需求即可。

关于javascript - 使用 JavaScript 的 md5 的较短版本..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42530980/

相关文章:

c# - 如何将 MD5 哈希转换为字符串并将其用作文件名

javascript - v-html中组件的使用方法

java - 创建 Java Spring Boot 端点以获取 json 形式的对象列表

csv - 电子表格列的自动 MD5 和十六进制编码

java - 使用 char[] 生成 MD5 哈希

json - 在 Swift 中将字典转换为 JSON

javascript - 将复选框添加到动态添加的表格行

javascript - 如何在 Sencha Touch 中添加数据到列表动态

javascript - 使用 AJAX 从 PHP 文件获取数据

c# - JSON 反序列化为对象失败