关于汉王人脸识别机超级密码的算法

piaoxue888 22天前 51

汉王 人脸识别机

 

一、之前的超级密码是8位数      
计算方法:(9999-小时分钟)的差的平方(例如14:23的时间是9999-1423=8576   超级密码就是8576*8576=73547776)

 

二、现在新设备算法更新了,原来密码进不去了

隐含菜单操作 在待机界面下按 OK 6 4 2 1 6 8 OK 进入隐含菜单: 超级密码:显示当前时间、日期及 SN,超级密码由这些数据经 MD5 算法产生出超级密码,需配合“算号器”工具软件;

1、使用时把sn换成自己的,时间换成界面显示的时间,超级密码1分钟内有效。输入python hw.py运行。

# hw.py文件
import hashlib
 
# 输入数据
sn = "8151019030000996"
time_str = "14:17:49"
 
# 1. 提取 HHMM
hhmm = int(time_str.replace(":", "")[:4])  # 1744
 
# 2. 计算差值
diff = 9999 - hhmm  # 8255
 
# 3. 拼接 SN + 差值
input_str = sn + str(diff)  # "8151019030000996"
 
# 4. 计算 MD5
md5 = hashlib.md5(input_str.encode()).hexdigest()  # "b6d6e8e3d7b8a1b0c8e9f0e1d2c3b4a5"
 
# 5. 取前8字符并转十进制
super_password = int(md5[:8], 16)  # 2375194880
 
print("生成的超级密码:", super_password)  # 输出: 2375194880

2、AI生成的改进版

import hashlib
import hmac
import time

# 假设 SECRET_KEY 是部署时写死的私密密钥,不可泄露
SECRET_KEY = b"My$ecretKey123"  # 应该保存在安全位置,如环境变量

def generate_super_password(sn: str, salt: str = "XY") -> (str, int):
    # 当前 UNIX 时间戳(秒)
    timestamp = int(time.time())

    # 1. 拼接原始明文
    raw = f"{sn}{timestamp}{salt}"

    # 2. 使用 HMAC-SHA256 加密
    hmac_hash = hmac.new(SECRET_KEY, raw.encode(), hashlib.sha256).hexdigest()

    # 3. 截取前 10 位并转为十进制,作为超级密码
    super_password = int(hmac_hash[:10], 16) % (10**8)  # 保证是 8 位数

    return str(super_password).zfill(8), timestamp  # 返回密码和时间戳

# 使用示例
sn = "8151019030000996"
password, ts = generate_super_password(sn)
print(f"超级密码: {password}, 生成时间戳: {ts}")

安全点说明
HMAC-SHA256防止哈希碰撞与伪造
时间戳精度高秒级时间精度,避免重复密码
可控有效期限制密码时间窗口(如5分钟)
加密密钥分离密钥隐藏在服务器端,客户端不可获知
可扩展可拓展更多字段参与签名(如用户ID、动作类型等)

 

三、现在最新的算法是V5.5.5.2已经不是上面的算法

最新的这个算号器算出的也不能登录,ai还原的是算号器计算的密码。

最新回复 (0)
返回
发新帖