gduter.utils 模块

gduter.utils.encrypt_password(password: str, salt: bytes) str[源代码]

使用 AES-CBC 模式加密密码。

该方法使用 AES(高级加密标准)算法的 CBC(密码块链接)模式对密码进行加密。 加密过程中会生成一个随机前缀和一个随机初始化向量(IV), 并使用 PKCS7 填充确保明文长度符合 AES 的块大小要求。

参数:
  • password (str) -- 要加密的密码字符串。

  • salt (bytes) -- 用于加密的 16 字节盐值。

返回:

Base64 编码后的加密字符串。

返回类型:

str

gduter.utils.get_salt_and_execution_from_html(html: str) tuple[str | None, str | None][源代码]

从 HTML 内容中提取 salt 和 execution 的值。

该方法使用正则表达式在给定的 HTML 字符串中查找 pwdEncryptSaltexecution 的值。

参数:

html (str) -- 包含 salt 和 execution 值的 HTML 字符串。

返回:

一个元组,包含提取出的 salt 和 execution 值。

如果未找到,则对应的值为 None。

返回类型:

tuple[Optional[str], Optional[str]]

抛出:

HTMLExtractionError -- 当未能成功提取到 salt 或 execution 中的任何一个时抛出。

gduter.utils.process_student_courses_from_data(data: str) list[dict][源代码]

从包含学生课程信息的html内容中提取并处理课程数据。

该函数接收一个表示学生课程信息的html内容,并将其转换为包含更易于使用的键的字典列表。

参数:

data (str) -- 包含学生课程信息的网页信息。

返回:

处理后的课程信息字典列表。

返回类型:

list[dict]

gduter.utils.random_string(length: int) str[源代码]

生成指定长度的随机字符串。

该字符串由大小写字母和数字组成,适用于生成加密相关的随机值。

参数:

length (int) -- 要生成的随机字符串的长度。

返回:

生成的随机字符串。

返回类型:

str