sys_user_data.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from . import mpfun
  4. from models import *
  5. from sqlalchemy.orm import Session
  6. # 系统用户表
  7. def sign_row(db: Session, row: SysUser) -> None:
  8. if row.sign != '':
  9. return
  10. user_id = str(row.user_id)
  11. user_name = mpfun.enc_data(row.user_name)
  12. password = mpfun.enc_data(row.password)
  13. nick_name = mpfun.base64_data(row.nick_name)
  14. dept_id = str(row.dept_id)
  15. dept_name = mpfun.base64_data(row.dept_name)
  16. email = mpfun.enc_data(row.email)
  17. phonenumber = mpfun.enc_data(row.phonenumber)
  18. status = str(row.status)
  19. del_flag = row.del_flag
  20. yzy_account = mpfun.enc_data(row.yzy_account)
  21. sign_data = ",".join([user_id, user_name, password, nick_name, dept_id, dept_name, email, phonenumber, status, del_flag, yzy_account])
  22. sign_hmac = mpfun.sign_data(sign_data)
  23. print('sign_tbl_user sign_data:', sign_data)
  24. print('sign_tbl_user sign_hmac:', sign_hmac)
  25. row.user_name = user_name
  26. row.password = password
  27. row.email = email
  28. row.phonenumber = phonenumber
  29. row.yzy_account = yzy_account
  30. row.sign = sign_hmac
  31. db.commit()
  32. # 比较字段合并字符串是否和MAC值匹配上,调用密码服务器[验证HMAC]接口
  33. def sign_valid_sign_row(row: SysUser) -> bool:
  34. if row.sign == '':
  35. return True
  36. user_id = str(row.user_id)
  37. user_name = row.user_name
  38. password = row.password
  39. nick_name = mpfun.base64_data(row.nick_name)
  40. dept_id = str(row.dept_id)
  41. dept_name = mpfun.base64_data(row.dept_name)
  42. email = row.email
  43. phonenumber = row.phonenumber
  44. status = str(row.status)
  45. del_flag = row.del_flag
  46. yzy_account = row.yzy_account
  47. # 原HMACSM3数值
  48. sign_hmac = row.sign
  49. print('sign_hmac:', sign_hmac)
  50. # 关键字段合并字符串
  51. sign_data = ",".join([user_id, user_name, password, nick_name, dept_id, dept_name, email, phonenumber, status, del_flag, yzy_account])
  52. print('sys_user resign_data:', sign_data)
  53. # 比较字段合并字符串是否和MAC值匹配上,调用密码服务器[验证HMAC]接口
  54. return mpfun.hmac_verify(sign_data, sign_hmac)