← 返回题库
中级

实现传感器上报防重放检测

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd
    devs_csv = open_url(____).read()
    devs = pd.read_csv(StringIO(____))
    NONCE_TTL = ____
    seen_nonces = {}
    def check_replay(____):
        if abs(____) > NONCE_TTL:
            return False, '____'
        key = device_id + '____' + str(____)
        if key in seen_nonces:
            return False, '____'
        seen_nonces[key] = server_ts
        return True, '____'
    now = ____
    requests = [
        (____),
        (____),
        (____),
        (____),
    ]
    print(____)
    for did, ts, nonce, server_ts in requests:
        ok, msg = check_replay(____)
        print("____"+did+"____"+str(____)+"____"+nonce+"____"+str(____)+"____"+msg)

示例

输入
solve()
期望输出
Anti-replay check:
  SOIL-A01 ts=1748736000 nonce=nonce_abc123: ok=True ok
  SOIL-A01 ts=1748736000 nonce=nonce_abc123: ok=False replay_detected
  SOIL-B01 ts=1748735000 nonce=nonce_xyz789: ok=False timestamp_expired
  SOIL-B02 ts=1748736100 nonce=nonce_fresh01: ok=True ok
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码