任何一段信息文字,都可以对应一个不太长的随机数,作为区别它和其它信息的指纹(Fingerprint)。这个主要可以通过算法来实现。比较著名的有MD5等。比如:VS2005就自带了不少。你可以在调用它的函数就可以生成信息指纹。
转换为信息指纹的好处:
1 存储空间变小。一个只要存贮整形的数和一个需要存储整个字符串显然是数要好得多
2 查找方便。如果字符串查找,则需要一个个匹配。而转换为整形则可以使用排序后折半查找等方法可以大大的提高效率。效率得到了提高。
信息指纹的使用除了加密,搜索,还有典型的应用比如:
(1) 垃圾邮件 美一公司欲通过指纹加密技术拦截垃圾邮件
http://mail.cstnet.cn/zazhi_17/anti_spam.html
(2) 内容过滤(这个是我毕业设计使用的了)这个就不透露了还没毕业呢。
这里提供一个Rabin Hash Function的代码(Java),可以将不同的字符串生成一个唯一的32位数等。
http://jaist.dl.sourceforge.net/sourceforge/rabinhash/rabin-hash-function-2.0.zip
相关文献:
http://blog.wangyuhui.net/archives/8
数学之美 系列十三 信息指纹及其应用
http://my.donews.com/eraera/2006/08/05/yaUbEJISIyCYOFGCifDhFGoifRkpsSykosGb/
参考文献: