使用 FF1 和 FF3-1 进行格式保留加密
项目描述
安装
该库使用 PyCryptodome,这意味着需要 C 编译器。对于 Mac 和 Linux 用户,这已安装。对于 Windows 用户,请遵循 PyCryptoDome 的本指南。
https://pycryptodome.readthedocs.io/en/latest/src/installation.html#windows-from-sources
用法
该库被导入为from FPE import FPE.
使用其中的tweak_len 生成一个tweakFPE.generate_tweak(tweak_length)是tweak 的长度(以字节为单位)。请注意,对于 FF3-1,tweak_length 必须为 7 个字节。
要生成密钥 use FPE.generate_key(),这将生成一个 16 字节的密钥。
要使密码对象使用cipher = FPE.New(key,tweak,mode)
当前支持的模式是Mode.FF1和Mode.FF3-1
加密使用cipher.encrypt(plaintext,format)
目前支持的格式有:
Format.DIGITS
Format.CREDITCARD
Format.LETTERS
Format.STRING
Format.EMAIL
Format.CPR
解密使用cipher.decrypt(ciphertext,format)
该库还支持 CSV 文件
要加密 csv 文件,请使用cipher.encryptCSV(InputFilePath,OutputFilePath,formats)
where formats 是按列排序的格式列表
要解密 csv 文件,请使用cipher.decryptCSV(InputFilePath,OutputFilePath,formats)
要生成具有某些格式的随机 CSV 文件,请使用
cipher.generateData(OutputFilePath,rows,formats,variables)where rows 定义 CSV 文件中的行数。格式是要使用的格式列表。变量是用于第一行的变量名称列表。
例子
将“123456”加密和解密DIGITS并打印输出的示例
from FPE import FPE
if __name__ == '__main__':
T = FPE.generate_tweak(8)
key = FPE.generate_key()
cipher = FPE.New(key,T,FPE.Mode.FF1)
ciphertext = cipher.encrypt('123456',FPE.Format.DIGITS)
print(ciphertext)
plaintext = cipher.decrypt(ciphertext,FPE.Format.DIGITS)
print(plaintext)
生成、加密和解密 1000 行 CSV 文件的示例
from FPE import FPE, Format
variables = [
'Username','Password','Email','PhoneNumber','Cpr-number',
'Creditcard','adress','city','zip','country'
]
formats = [
Format.LETTERS, Format.STRING, Format.EMAIL, Format.DIGITS,
Format.CPR, Format.CREDITCARD,Format.STRING,Format.LETTERS,
Format.DIGITS,Format.LETTERS
]
if __name__ == '__main__':
T = FPE.generate_tweak(7)
key = FPE.generate_key()
cipher = FPE.New(key,T,FPE.Mode.FF3)
cipher.generateData('testData.csv',1000,formats,variables)
cipher.encryptCSV('testData.csv','encryptedData.csv',formats)
cipher.decryptCSV('encryptedData.csv','decryptedData.csv',formats)
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
FPE-0.1.2- cp39 -cp39-win_amd64.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 0488ff545154a4443b1bc751ce564097728dceba2d5fa2da9e3cf8bcdbbf3b4e |
|
| MD5 | 6f97e2cfbb4cd53ddcae638cb092a83c |
|
| 布莱克2-256 | 1020bff9d3e3241110d8dce9d8708a36062cd91c4fc2489929b1bcf1983d4b8c |