0

首先,请温柔一点,我对数据库设计知之甚少。我正在与 Splunk 合作,根据客户呼叫信息(呼叫详细记录)生成记录。由于体积,我不能真正使用 splunk 来处理一些数据,因为它是非关系的。所以我会把数据拿进来,用 splunk 做一些简单的警报,监控奇怪的模式,做一些其他更高级的事情。我最容易获得的数据源已经在系统上近乎实时地可用。我想做的是获取传入的 SIP 呼叫 ID(根据 RFC 定义必须是全局唯一的),传出的 SIP 呼叫 ID(同样,必须是全局唯一的),当前的 unix 纪元时间,然后随机生成1-2^31 的数字,将它们连接在一起,然后将结果的 md5 哈希值用作主键。我们遇到碰撞的可能性有多大?任何关于其他方法的建议将不胜感激。

4

1 回答 1

2

发生冲突的可能性约为 2^128 分之一,但由于 md5 有点损坏,如果对手知道您的 RNG 的某些信息,他们可能会通过某种方式制作合适的调用 ID 来更频繁地创建冲突。我认为您可以直接使用该创造的价值而无需散列,或者以其他方式考虑碰撞可能导致的风险并为此制定计划。

于 2012-06-17T19:26:24.603 回答