又报错 module 'pyffx' has no attribute 'AES'
时间: 2023-06-23 09:44:06 浏览: 149
非常抱歉,我之前的回答有误。在 pyffx 中,确实没有名为 AES 的 FFX 算法。实际上,pyffx 支持的 FFX 算法有三种:Integer、String 和 Binary。其中 Integer 和 String 适用于字符集为数字的情况,Binary 则适用于二进制数据的情况。如果你需要使用 pyffx 加密数字,则可以使用 Integer 类,并将 alphabet 参数设置为 '0123456789'。
以下是修改后的代码示例:
```
import pyffx
# 定义 FPE 使用的密钥和算法
key = b'secretkey'
ffx = pyffx.Integer(alphabet='0123456789', length=4, ffx=pyffx.Integer, key=key)
# 脱敏手机号的函数
def encrypt_phone_number(phone_number):
# 将手机号中间四位转换为整数类型,然后进行加密
encrypted = ffx.encrypt(int(phone_number[3:7]))
# 将加密后的结果转换为字符串并插入到原手机号的中间四位
return phone_number[:3] + str(encrypted) + phone_number[7:]
# 测试脱敏函数
phone_number = '13812345678'
encrypted_phone_number = encrypt_phone_number(phone_number)
print('原手机号:', phone_number)
print('脱敏后手机号:', encrypted_phone_number)
```
这里我使用了 pyffx 的 Integer 算法进行加密。你也可以选择其他支持的 FFX 算法,例如 String、Binary、DES、TDES、Blowfish 等。如果你需要加密的字符集不是数字,那么需要将 alphabet 参数改为你需要的字符集。
阅读全文