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