You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Zk4500采集的指纹模板存入ZKTeco K50生物识别考勤机

问题原因
  • 模板编码不匹配:Java侧FingerprintSensorEx.BlobToBase64输出的是Base64编码的模板字符串,但是你调用的Finger.json_unpack方法默认将模板字段按十六进制格式解码,解码得到的二进制内容完全错误,考勤机无法识别无效的指纹模板。
  • 用户匹配逻辑错误:你提前调用conn.set_user创建了user_id为6的用户,但是后续遍历用户列表时,判断条件为user.user_id == "3",永远找不到目标用户,保存模板的逻辑根本不会执行。
  • 缺少设备操作收尾:你调用conn.disable_device锁定设备操作后,没有执行conn.enable_device恢复设备状态,也没有正确断开连接,会导致操作未落地到考勤机的持久化存储。
解决方法
  1. 修正模板编码转换逻辑:将Java侧输出的Base64模板先做Base64解码得到二进制内容,再传入Finger对象,不需要走默认按十六进制解码的json_unpack方法。
  2. 修正用户匹配规则:将匹配条件修改为你实际要绑定指纹的用户ID,避免找不到目标用户。
  3. 补全设备操作流程:操作完成后恢复设备正常状态,最后主动断开连接。
修正后的Python代码示例
import base64
from zk import ZK, const
from zk.finger import Finger

conn = None
try:
    zk = ZK('192.168.10.201', port=4370, timeout=5, password=0, force_udp=False, ommit_ping=False)
    conn = zk.connect()
    conn.disable_device()
    # 创建用户(如果已存在可以跳过该步骤)
    conn.set_user(uid=6, name='ahmed f', privilege=const.USER_ADMIN, password='12345678', group_id='', user_id='6', card=0)
    # 替换为Java侧实际输出的Base64模板字符串
    fingerPrintTemplateForDB1 = "替换为Java输出的Base64模板内容"
    # Base64解码得到二进制模板
    template_bin = base64.b64decode(fingerPrintTemplateForDB1)
    # 构造Finger对象,fid取值0-9,对应同一用户最多10枚指纹
    my_finger = Finger(uid=6, fid=0, valid=1, template=template_bin)
    # 找到目标用户
    target_user = None
    users = conn.get_users()
    for user in users:
        # 匹配你要绑定的用户ID
        if user.user_id == "6":
            target_user = user
            break
    if target_user:
        conn.save_user_template(target_user, [my_finger])
        print("指纹模板保存成功")
    else:
        print("未找到目标用户")
finally:
    if conn:
        conn.enable_device()
        conn.disconnect()
额外注意事项
  • 指纹fid取值范围为0-9,对应同一个用户最多10枚指纹,不要重复使用同一个fid给同一用户的多枚指纹。
  • ZK4500输出的标准ZKTeco指纹模板长度为604字节,你可以打印len(template_bin)确认长度是否符合,长度错误的模板也会被考勤机拒绝。
  • 如果还是失败,可以先从K50考勤机上录入一枚指纹,调用conn.get_user_template()导出模板,和你ZK4500输出的模板做对比,确认格式一致。

内容的提问来源于stack exchange,提问作者Muzamil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:57:05