secret_label_func.py 954 B

1234567891011121314151617181920212223242526272829303132
  1. """
  2. 密码标签生成与验证功能
  3. """
  4. import json
  5. from watermark_generate.tools import sign_verify
  6. def generate_secret_label(raw_data: str):
  7. """
  8. 生成密码标签
  9. :param raw_data: 模型版权信息
  10. :return: 指定格式密码标签字符串
  11. """
  12. sign_data, public_key = sign_verify.get_sign(raw_data)
  13. # TODO 增加public_key保存公钥的流程
  14. secret_label = json.dumps({'data': raw_data, 'sign': sign_data, 'public_key': public_key})
  15. return secret_label
  16. def verify_secret_label(secret_label: str, public_key: str) -> bool:
  17. """
  18. 验证密码标签
  19. :param secret_label: 生成的密码标签
  20. :param public_key: 签名公钥
  21. :return: 密码标签验证结果
  22. """
  23. dict_data = json.loads(secret_label)
  24. raw_data = dict_data.get("data")
  25. sign_data = dict_data.get("sign")
  26. verify_result = sign_verify.verify_sign(raw_data, sign_data, public_key)
  27. return verify_result