weixin_43154963 2022-11-07 22:48 采纳率: 50%
浏览 72
已结题

hash 文件 快速查找

设备端受理刷卡,系统会下发几万条黑名单开卡号,设备刷卡的时候要能在几毫秒判断出是否是黑名单卡号。

已有的.so库文件通过把卡号哈希计算一个数值然后映射到文件bit位置。 通过bit位0和1来判断是否存在黑名单。

设备端是c开发,没有数据库,且几万条下载经常出错,处理又耗时。

现在的需求:想在系统端用java直接把黑名单生成哈希文件,下发给设备
我自己试过把19位卡号hash ,然后取3个字节算10进制值,然后用200 0000 做模值取余得到文件bit位偏移,但是发现实际很大概率会出现碰撞。

  • 写回答

5条回答 默认 最新

  • X-道至简 2022-11-08 07:11
    关注
    获得1.50元问题酬金

    ,有几个问题
    19位数字是9个字节存储的?
    为啥设备自己生成哈希可以正常运行 java 的方式碰撞变大了。是用的方式不一样?
    可以考虑一下 分页+hash

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 创建了问题 11月7日