我需要一些哈希/加密函数:
种子是一个公共变量+一些我可以自由选择的隐藏字符串,但这个字符串必须是常量。输出将是公共的,但不保存在数据库中。但是假设攻击者可以访问每个输入的每个输出(他可以改变进入输入种子的公共变量),这是很好的。
那么我怎样才能使这个安全(隐藏哈希种子中隐藏的字符串)?我不能使用密码哈希,因为它们太慢(因为我说我需要每秒处理大量请求)。我不必使用整个输出哈希(前3个字符可以完成这项工作),但这并不安全,因为攻击者可以并行检查几个匹配。那么使用一个非常长的隐藏字符串是否安全(我认为它在密码学中称为胡椒)?
编辑:目的是将网址X转换为网址Y.Y必须与X不同,后者是通过添加字符串S来完成的。对于给定的1000个网址,S不得发生冲突。我想将许多URL X0,X1,X2,...,Xn转换为URL Y0,Y1,Y2,...,Yn。这种转换必须很快。找出将X转换为Y的算法实际上是不可能的.X和Y是公共的。