设备端受理刷卡,系统会下发几万条黑名单开卡号,设备刷卡的时候要能在几毫秒判断出是否是黑名单卡号。
已有的.so库文件通过把卡号哈希计算一个数值然后映射到文件bit位置。 通过bit位0和1来判断是否存在黑名单。
设备端是c开发,没有数据库,且几万条下载经常出错,处理又耗时。
现在的需求:想在系统端用java直接把黑名单生成哈希文件,下发给设备
我自己试过把19位卡号hash ,然后取3个字节算10进制值,然后用200 0000 做模值取余得到文件bit位偏移,但是发现实际很大概率会出现碰撞。
设备端受理刷卡,系统会下发几万条黑名单开卡号,设备刷卡的时候要能在几毫秒判断出是否是黑名单卡号。
已有的.so库文件通过把卡号哈希计算一个数值然后映射到文件bit位置。 通过bit位0和1来判断是否存在黑名单。
设备端是c开发,没有数据库,且几万条下载经常出错,处理又耗时。
现在的需求:想在系统端用java直接把黑名单生成哈希文件,下发给设备
我自己试过把19位卡号hash ,然后取3个字节算10进制值,然后用200 0000 做模值取余得到文件bit位偏移,但是发现实际很大概率会出现碰撞。
,有几个问题
19位数字是9个字节存储的?
为啥设备自己生成哈希可以正常运行 java 的方式碰撞变大了。是用的方式不一样?
可以考虑一下 分页+hash