例如,用户可以提交$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|
我该怎么做?
答案 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)