如何从 PHP 中的给定数据生成具有固定长度的唯一数值?例如,我可以有一个包含数字和字符的字符串,我需要生成长度为 6 的唯一数值。谢谢!
最佳答案
您无法使用任何算法从输入中生成唯一的数值。这就是将输入转换为伪随机输出的问题。如果你有一个 20 个字符的输入字符串和只有 6 个字符的输出,会有重复的结果,因为:
输入 20 个字符(假设有 58 种字母数字可能性):
58^20 = 1.8559226468222606056912232424512e+35 possibilities
6 个字符的输出(假设有 10 种数字可能性):
10^6 = 1000000 possibilities
因此,总而言之,您将无法从字符串中生成唯一数字。您最好的机会是使用像 md5 这样的哈希函数或 sha1 .它们是字母数字,但您始终可以将它们转换为数字。但是,一旦您将它们裁剪为 6 位数字,它们被重复的机会就会增加很多。
关于php - 如何从 PHP 中的给定数据生成具有固定长度的唯一数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13212596/