跳转到主要内容

对文本、电子邮件地址或许可标签等数据进行匿名化。

项目描述

gocept.pseudonymize

https://img.shields.io/pypi/v/gocept.pseudonymize.svg https://img.shields.io/pypi/pyversions/gocept.pseudonymize.svg https://github.com/gocept/gocept.pseudonymize/workflows/tests/badge.svg https://coveralls.io/repos/github/gocept/gocept.pseudonymize/badge.svg?branch=master

此包提供辅助函数,用于对文本、整数、电子邮件地址或许可标签等数据进行匿名化。

它使用crypt.crypt()函数进行匿名化,这意味着较长的文本块需要多个crypt.crypt()调用。

用法

gocept.pseudonymize 提供了对各种数据类型进行匿名化的单函数。每个函数接收需要匿名化的 value 和一个 secret,作为 crypt 模块的 salt 传递。如果 secretvalue 不变,匿名化函数在再次调用时返回完全相同的结果。

>>> 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

作者

gocept <mail@gocept.com>

在线文档

http://pythonhosted.org/gocept.pseudonymize/

PyPI 页面

http://pypi.python.org/pypi/gocept.pseudonymize/

问题

https://github.com/gocept/gocept.pseudonymize/issues

源代码

https://github.com/gocept/gocept.pseudonymize

当前更改日志

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)

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)

  • 初始发布。

项目详情


下载文件

下载您平台上的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分布

gocept.pseudonymize-3.0.tar.gz (12.6 kB 查看哈希值)

上传时间

构建分布

gocept.pseudonymize-3.0-py2.py3-none-any.whl (10.7 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面