对文本、电子邮件地址或许可标签等数据进行匿名化。
项目描述
gocept.pseudonymize
此包提供辅助函数,用于对文本、整数、电子邮件地址或许可标签等数据进行匿名化。
它使用crypt.crypt()函数进行匿名化,这意味着较长的文本块需要多个crypt.crypt()调用。
用法
gocept.pseudonymize 提供了对各种数据类型进行匿名化的单函数。每个函数接收需要匿名化的 value 和一个 secret,作为 crypt 模块的 salt 传递。如果 secret 和 value 不变,匿名化函数在再次调用时返回完全相同的结果。
>>> import gocept.pseudonymize >>> gocept.pseudonymize.text('Here is my little text', 'secret') 'u7YJWz RqdYkfNUFgZii2Y' >>> gocept.pseudonymize.text('Here is my little text', 'secret') 'u7YJWz RqdYkfNUFgZii2Y'
结果始终与输入具有相同的字符串长度。但无法保证它在输入值的域中仍然有效。例如,匿名化后的 IBAN 的校验和可能是不正确的。
本包已测试与 Python 版本 2.7、3.5 到 3.8 兼容。
详细用法示例
存在不同的匿名化函数,因为仅通过查看输入数据并不能总是猜测出正确的函数。
对于姓名,使用 name 函数。
>>> gocept.pseudonymize.name('Vimladil', 'secret') 'R5lprkud'
对于由街道和门牌号组成的地址,使用 street 函数。
>>> gocept.pseudonymize.street('Testweg 34a', 'secret') 'Kui1xre 723'
对于整数值,使用 integer 函数。
>>> gocept.pseudonymize.integer(4711, 'secret') 2111
对于十进制值,使用 decimal 函数。
>>> from decimal import Decimal >>> gocept.pseudonymize.decimal(Decimal('-123.45'), 'secret') Decimal('-8772.11')
对于电子邮件地址,使用 email 函数。
>>> gocept.pseudonymize.email('mail@gocept.com', 'secret') 'w6ba@ng7ngno.de'
对于 IBAN 账户号,使用 iban 函数。
>>> gocept.pseudonymize.iban('US00123456787650047623', 'secret') 'DE10312010975100119998'
对于 BIC(业务标识代码),使用 bic 函数。
>>> gocept.pseudonymize.bic('PBNKDEFFXXX', 'secret') 'GTY1BPG8PE2'
对于汽车的车牌标签,使用 license_tag 函数。
>>> gocept.pseudonymize.license_tag('HAL-AB 123', 'secret') 'PUD-AM 117'
对于电话号码,使用 phone 函数。
>>> gocept.pseudonymize.phone('+49 172 34123142', 'secret') '0104118118111676'
对于日期,使用 date 函数。
>>> from datetime import date >>> gocept.pseudonymize.date(date(1983, 1, 11), 'secret') datetime.date(3021, 1, 18)
对于表示为字符串的日期,使用 datestring 函数。它接受一个格式字符串,并保留日期部分的零。
>>> gocept.pseudonymize.datestring('00/03/2003', 'secret', format='DD/MM/YYYY') '00/10/7399'
对于时间值,使用 time 函数。
>>> from datetime import time >>> gocept.pseudonymize.time(time(23, 59, 59), 'secret') datetime.time(13, 11, 49)
本包中还有一些额外的匿名化函数和辅助函数。
运行测试
使用 tox 运行测试。有关详细信息,请参阅其文档。
开发gocept.pseudonymize
- 作者:
- 在线文档:
- PyPI 页面:
- 问题:
- 源代码:
- 当前更改日志:
https://raw.githubusercontent.com/gocept/gocept.pseudonymize/master/CHANGES.rst
变更日志
3.0 (2023-07-18)
停止支持 Python 2.7、3.3、3.4、3.5、3.6。
添加对 Python 3.7、3.8、3.9、3.10、3.11 的支持。
停止支持 PyPy 实现。目前 crypt 模块与 PyPy3 不兼容。
2.0.1 (2017-03-22)
修复 phone(),使其在输入只有一个字符长时不会出错。(https://bitbucket.org/gocept/gocept.pseudonymize/issues/1)
2.0 (2017-03-20)
不兼容的更改
使用 text() 匿名化的值不再包含句号,它们被转换为空格。因此,自版本 1.1 以来,匿名化值可能已更改。(现在 string() 具有与以前的 text() 相同的行为,请参见下文。)
email() 现在返回其结果全部为小写。
功能
添加 string() 匿名化函数,返回包含数字、数字和句号的字符串。(这是以前 text() 所做的。)
错误修复
修复所有匿名化器:如果使用一个评估为False的值调用,则返回该值。但integer()仍然将0匿名化。
修复email(),使其在输入值不包含@符号时不中断。
1.1 (2017-03-16)
添加street()匿名化器。
添加bic()(业务标识码)匿名化器。
1.0 (2017-03-16)
新功能
添加name()匿名化器。
其他更改
声明支持PyPy。
正式支持Python 3.4、3.5和3.6。
将测试覆盖率提高到100%,即使是代码分支,并强制执行未来。
从ZPL重新授权为MIT。
0.4.1 (2014-01-14)
修复对glibc2支持的附加加密算法的使用处理(使用$<id>$<salt>$作为盐进行标记)。
0.4 (2014-01-14)
错误修复:text()匿名化器现在可以按预期处理超过11个字节的文本。之前它返回一个11字节的对于超过11个字节的文本,忽略第11个字节之后的部分(使用的crypt实现的默认行为)。(#1296)
修复了处理扩展加密(通过以下划线开始盐进行标记)的问题:现在正确地从结果中删除了盐。注意:这导致使用以下划线开始的秘密与版本0.3相比,匿名化结果不同。
0.3 (2013-10-09)
修复文档中的测试 + 测试文档现在。
添加新的匿名化器
datestring()
day()
month()
year()
注意:由于date()函数的实现方式已更改,因此它返回的值与版本0.2不同。
0.2 (2013-09-06)
date()不再返回小于1900的匿名化年份,因为datetime.date无法处理小于1900的年份。
0.1 (2013-09-05)
初始发布。
项目详情
哈希值 for gocept.pseudonymize-3.0-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ce7c7077837cdecd749c2b642fab28b4aaeb234aa649264bfa8b3d260c23c7af |
|
MD5 | b51416870589f9597d447487fdcb0e8d |
|
BLAKE2b-256 | 262f191351ae65bb910c9aee591925ae521ea479a1200aeaf2482446eef4a1d3 |