← 返回题库
初级

验证传感器设备API Key

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd, hashlib
    keys_csv = open_url("https://data.zuihe.com/dbd/ms-greenfarm/state_02/device_keys.csv").read()
    keys = pd.read_csv(StringIO(keys_csv))
    def verify_api_key(device_id, provided_key):
        row = keys[(keys['device_id']==device_id)&(keys['is_active']==1)]
        if row.empty: return False, 'key_not_found_or_inactive'
        h = hashlib.sha256(provided_key.encode()).hexdigest()
        if h == row.iloc[0]['key_hash']: return True, 'ok'
        return False, 'key_mismatch'
    tests = [
        ('SOIL-A01','fk_greenfarm_soil-a01_1'),
        ('SOIL-A01','wrong_key'),
        ('SOIL-A03','fk_greenfarm_soil-a03_3'),
        ('SOIL-X99','any_key'),
    ]
    print("API Key verification:")
    for did, key in tests:
        ok, msg = verify_api_key(did, key)
        print("  "+did+": ok="+str(ok)+" "+msg)

示例

输入
solve()
期望输出
API Key verification:
  SOIL-A01: ok=True ok
  SOIL-A01: ok=False key_mismatch
  SOIL-A03: ok=False key_not_found_or_inactive
  SOIL-X99: ok=False key_not_found_or_inactive
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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