Skip to main content

使用 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.FF1Mode.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.tar.gz (117.8 kB 查看哈希

已上传 source

内置分布

FPE-0.1.2-cp39-cp39-win_amd64.whl (81.6 kB 查看哈希

已上传 cp39