Delphi 从数字生成唯一字符串(最多40亿)
如果我想散列一个简单的ID号,那么使用什么样的散列呢? (1到40亿),这在40亿没有碰撞的数字中是唯一的 我已经读了一些关于散列的书,以及它是如何检查字符串有效性的好方法 注意:我需要一个随机字符串,我可以稍后用相同的ID重新计算,而不是一些随机字符串,因为这个随机字符串没有存储 (注意:我可能需要在数字之前或之后添加一个键,以便我的哈希不容易重新构造, 例如,ID=1使用MySecretKey1散列,ID=25使用MySecretKey25散列,以此类推 标准:Delphi 从数字生成唯一字符串(最多40亿),delphi,encryption,hash,Delphi,Encryption,Hash,如果我想散列一个简单的ID号,那么使用什么样的散列呢? (1到40亿),这在40亿没有碰撞的数字中是唯一的 我已经读了一些关于散列的书,以及它是如何检查字符串有效性的好方法 注意:我需要一个随机字符串,我可以稍后用相同的ID重新计算,而不是一些随机字符串,因为这个随机字符串没有存储 (注意:我可能需要在数字之前或之后添加一个键,以便我的哈希不容易重新构造, 例如,ID=1使用MySecretKey1散列,ID=25使用MySecretKey25散列,以此类推 标准: 字符串中可能达到此目的的最
- 字符串中可能达到此目的的最短字节数:我不想使用128/256字节哈希
- 若并没有内置密钥可用,若哈希算法并没有内置SecretKey,我将用mysecretkey作为前缀或后缀数字
- 40亿数字之间没有冲突
- 具有32字节的MD5是否超过了kill?因为我只需要大约40亿个ID(1-4000000000),是否有更好的替代方案?它必须存储为字符串,而不是字节,因此我将其计为32字节
- 碰撞可能超过40亿次吗
- 或者我附加到数字上的前缀/后缀密钥是否会决定是否可能发生冲突
- 它不用于密码或任何敏感信息,因此我不需要最大的安全性,我需要具有最短字符串输出的algo