HiveNetWebUtils.utils.cryptography module

通用的加解密处理公共模块

class HiveNetWebUtils.utils.cryptography.HCrypto[源代码]

基类:object

通用加解密公共模块

classmethod generate_nonce(length: int = 8, chars='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789') str[源代码]

生成nonce随机字符串

参数
  • length (int) – default=8, 要生成的字符串长度

  • chars (string) – default=”AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789”, 随机抽取的字符串内容

返回

返回随机字符串

返回类型

str

classmethod generate_salt(str_len=8, chars='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz')[源代码]

随机生成盐字符串

参数
  • str_len (int) – default=8, 盐长度

  • chars (string) – default=”AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz”, 生成盐包含的字符集合

返回

生成的盐字符串

返回类型

str

classmethod hmac_sha256(value: str, key: str, encoding='utf-8') str[源代码]

HMAC-SHA256加密算法

参数
  • value (str) – 要加密的字符串内容

  • key (str) – 加密密钥

  • encoding (str) – default=’utf-8’, 对value字符串的转换编码

返回

返回加密后的字符串

返回类型

str

classmethod md5(value, encoding='utf-8', **kwargs) str[源代码]

Md5加密算法

参数
  • value (str|bytes) – 要加密的字符串或bytes数组

  • encoding (str) – default=’utf-8’, 对value字符串的转换编码

返回

返回加密后的字符串

返回类型

str

classmethod rsa_decrypt(rsa_key, encrypt_data, output_str: bool = True, encoding: str = 'utf-8')[源代码]

解密数据

参数
  • rsa_key (Cryptodome.PublicKey.RSA.RsaKey) – 通过 rsa_get_key 获取到的 RsaKey 对象

  • encrypt_data (str|bytes) – 要解密的数据, 支持 base64 字符串或字节数据两种类型

  • output_str (bool) – default=True, 输出结果是否转换为真实字符串 (加密数据为字符串)

  • encoding (str) – default=’utf-8’, 数据结果转换为字符串的编码

返回

解密后的结果, 如果 output_str 为 True 则为字符串, 否则为二进制字节数组

返回类型

bytes|str

classmethod rsa_encrypt(rsa_key, data, encoding: str = 'utf-8', output_str: bool = True)[源代码]

RSA加密数据

注意: RSA支持加密数据长度跟密钥长度有关,因此不建议使用RSA加密大数据

参数
  • rsa_key (Cryptodome.PublicKey.RSA.RsaKey) – 通过 rsa_get_key 获取到的 RsaKey 对象

  • data (str|bytes) – 要加密的数据, 支持字符串或字节数据两种类型

  • encoding (str) – default=’utf-8’, 对字符串的转换编码

  • output_str (bool) – default=True, 输出结果是否转换为字符串格式

返回

如果output_str为True, 则通过 base64.b64encode 转换为可打印字符输出, 否则返回二进制字节数组

返回类型

str|bytes

classmethod rsa_generate_key_pair(bits: int = 1024, e: int = 65537, format: str = 'PEM', pkcs: int = 1, passphrase: str = None) tuple[源代码]

生成RSA密钥对

参数
  • bits (int) – default=enum[*1024,2048,3072], 密钥长度

  • e (int) – default=65537, 公钥指数, 最小为65537, 不建议修改

  • format (str) –

    default=enum[*’PEM’,’DER’,’OpenSSH’], 输出的密钥格式

    PEM - 文本编码格式, 满足标准 RFC1421/RFC1423

    DER - 二进制格式

    OpenSSH - 文本编码格式, 满足 OpenSSH 标准

  • pkcs (int) –

    default=enum[*1,8], 私钥的结构标准

    1 - 私钥编码为简单的 PKCS#1 结构(RSAPrivateKey)

    2 - 私钥编码为 PKCS#8 结构(PrivateKeyInfo)

  • passphrase (str) – default=None, 证书开启密码, 用于保护证书的输出内容

返回

返回 (私钥字节数组, 公钥字节数组)

返回类型

(bytes, bytes)

classmethod rsa_get_key(extern_key, passphrase=None)[源代码]

RSA获取密钥对象(公钥或私钥)

参数
  • extern_key (str|bytes) – 输入的密钥内容, 可以为字符串或bytes对象

  • passphrase (str) – default=None, 密钥的开启密码

返回

返回可以用于加解密的密钥对象

返回类型

Cryptodome.PublicKey.RSA.RsaKey

classmethod sha1(value: str, encoding='utf-8', **kwargs) str[源代码]

SHA1加密算法

参数
  • value (str|bytes) – 要加密的字符串或bytes数组

  • encoding (str) – default=’utf-8’, 对value字符串的转换编码

返回

返回加密后的字符串

返回类型

str

classmethod sha256(value: str, encoding='utf-8', **kwargs) str[源代码]

SHA256加密算法

参数
  • value (str|bytes) – 要加密的字符串或bytes数组

  • encoding (str) – default=’utf-8’, 对value字符串的转换编码

返回

返回加密后的字符串

返回类型

str

classmethod sha512(value: str, encoding='utf-8', **kwargs) str[源代码]

SHA512加密算法

参数
  • value (str|bytes) – 要加密的字符串或bytes数组

  • encoding (str) – default=’utf-8’, 对value字符串的转换编码

返回

返回加密后的字符串

返回类型

str