我想编写一个脚本,可以在文件系统中搜索和报告个人身份信息,如卡号等。我想在txt以及xls word和PDF文件中找到它。
欢迎任何入门提示或使用的库。
我也喜欢有效地扫描大型文件以获取信用卡等模式的建议。
答案 0 :(得分:5)
给piianalyzer一个机会: https://pypi.python.org/pypi/piianalyzer/0.1.0
或者您可以自己编写并使用常见的正则表达式数据集 https://github.com/madisonmay/CommonRegex
答案 1 :(得分:1)
如果您正在为公司工作,您可以考虑购买一个打包的解决方案。我见过的广告是Nuix。此外,Oracle还为GDPR(新的欧盟隐私法)提供端到端解决方案,其中包括您描述的功能。请参阅http://www.oracle.com/technetwork/database/security/wp-security-dbsec-gdpr-3073228.pdf。
如果你有Oracle RDBMS,那么有一个名为CTXSYS(现在称为Oracle Text)的软件包,它具有跨文档的惊人搜索功能,包括PDF,整个Office套件等等。 CTXSYS包含在常规许可证中。如果您是家庭用户,则可以下载Oracle服务器(Express版本适用于此功能)。
如果您正在使用上面建议的正则表达式,一种简单的方法是搜索在句子中间大写的单词,但这只会对文档有帮助(例如,对于文档而言不是很多)。您还可以构建常用名称字典(名字/姓氏,街道,城镇)。信用卡和SSN应该很容易正确使用。
答案 2 :(得分:0)
我们正在实施一个类似的系统,允许从动态表单和CSV导入中输入数据。字段将被分类为列表,数字范围,自由文本。数据最终在DB表中的一个字段中。我们正在扫描自由文本条目以查找PHI。 数据通过网站输入并存储在SQL Server中。我们触发一个命令,将任何新导入批处理的id添加到RabbitMQ队列,并将批处理中的所有自由文本字段标记为待处理检查,以防止显示或导出它们。 所有被认为是“安全”的字段,例如从下拉列表或基于数字范围生成的字段都可以导出或以图表形式显示。仅暂时锁定自由文本字段。 然后,python窗口服务从Rabbit队列中拉出并扫描每个文本字段以获取PHI并相应地标记它们。如果有些字段看起来很可疑,我会收到报告并手动检查整个文本导入批处理。 我目前正在使用Spacy进行实体识别,并使用Deduce的各个方面来查找其他PHI类型。
由于分析是异步执行的,因此能够在不影响性能的情况下将数据放入多种扫描方法。