我通过 5元组(src IP,dst端口,运动,dport,传输协议号码)识别互联网流量,我想将此转为5将元组转换为更紧凑的字母数字ID ,供我的脚本内部使用。
我在Python中有哪些选择?
我读到内置函数hash
仅一致的操作系统,所以我更喜欢别的。
我只需要处理不超过几百个不同的5元组。
答案 0 :(得分:2)
只需选择自己的哈希函数:
import hashlib
hash = hashlib.md5()
t = (1, 2, 3, 4, 5) # whatever
t_as_string = str(t)
hash.update(t_as_string)
print hash.hexdigest()
您可以使用hashlib中的任何功能。由于这不是一个安全问题,因此无关紧要......
但是:想打赌,比较元组会更快/更有效吗?
答案 1 :(得分:2)
以下Python Hash函数由Ewen Cheslack-Postava在几个OS和CPU中保持一致: https://pypi.python.org/pypi/pyhashxx/
答案 2 :(得分:1)
但是因为你只处理了几百个5元组,所以你不能应用某种哈希共谋解决技术,如链接或开放寻址等。
如果我没有遗漏任何其他内容,我相信上述方法比自己设计新的哈希算法更好。