如何从用户输入生成唯一字符串?

时间:2018-04-10 02:12:51

标签: algorithm unique uniqueidentifier unique-key

例如,用户可以提交$a$b$c。我需要从这些输入中创建一个唯一的字符串。

如果我使用$uniq = $a$b$c,则输入$a=AB, $b=CD, $c=EF$a=A, $b=BCD, $c=EF都会生成$uniq=ABCDEF

如果我使用$uniq = $a|$b|$c,那么$a=AB, $B=CD, $c=EF|$a=AB|CD, $b=EF, $c=""都会生成$uniq=AB|CD|EF|

我该怎么做?

1 个答案:

答案 0 :(得分:0)

正确而安全的解决方案是为$a$b$c生成单独的哈希值,然后通过连接或生成另一个哈希将这些哈希值组合在一起。

这是一个算法:

$a_h = hash($a)
$b_h = hash($b)
$c_h = hash($c)
$uniq = hash($a_h$b_h$c_h)

根据您的要求,可能还需要添加"盐"使其更安全:https://en.wikipedia.org/wiki/Salt_(cryptography)