确保每个结果的数字的加密散列的一种方式是唯一的

时间:2010-10-25 11:40:25

标签: c++ encryption hash

这有一个很好的算法吗?经过一番搜索后,我找不到任何确凿的答案。

基本上,在收集有关其用户的各种数据的系统中,每个用户由64位唯一ID标识。此Id用作数据集的主键,可包括从该用户收集的任何数据量。因为这个ID已经是唯一的,但是由于法律原因,我需要以一种我无法将它们链接回实际人的方式来散列Id。但同时需要保证身份证的唯一性。

显然,如果值是唯一的,则可以对所使用的算法进行逆向工程。但是我不太确定它是100%牢不可破的在这里是一个很大的问题,而不是让它变得如此,以至于没有一种简单的方法可以逆转它

感谢

2 个答案:

答案 0 :(得分:3)

为每个ID生成一个唯一的随机ID,并将其存储为用户信息的一部分。

然后你可以从ID获取哈希值。反过来在计算上是可能的(因为你必须扫描整个密钥空间),但过于困难和耗时。

答案 1 :(得分:0)

为什么唯一ID需要成为主键?可能是您可以使用其他主键(ID的哈希)并存储使用已知密钥加密的加密主用户名。

据我所知,哈希值无法逆转