问题描述:我正在处理一个高度敏感的数据集,其中包含人员的电话号码信息作为其中一列。我需要应用(对它们进行加密/哈希函数)将它们转换为一些编码值并进行分析。它可以是单向哈希 - 即,在使用加密数据进行处理后,我们不会将它们转换回原始电话号码。本质上,我正在寻找一个匿名器,它可以获取电话号码并将其转换为一些我可以进行处理的随机值。建议执行此过程的最佳方法。欢迎就最佳使用算法提出建议。
更新:数据集的大小我的数据集非常巨大,有数百 GB。
更新:敏感通过敏感,我的意思是电话号码不应该成为我们分析的一部分。所以,基本上我需要一个单向哈希函数,但没有冗余 - 每个电话号码应该映射到唯一的值 - 两个电话号码不应该映射到相同的值。
更新:实施?
感谢您的回答。我正在寻找详细的实现。我正在通过 python 的 hashlib 库进行哈希处理,它是否必须执行您建议的相同步骤?链接在这里 http://docs.python.org/2/library/hashlib.html
您能给我一些实现该过程的示例代码吗?最好是用 Python 编写的?
为您的数据集生成密钥(16 或 32 字节)并保密。使用Hmac-sha1 http://en.wikipedia.org/wiki/Hash-based_message_authentication_code使用此密钥对您的数据进行 Base 64 编码,并且每个电话号码都有一个随机的唯一字符串,该字符串不可逆(没有密钥)。
使用示例(具有 256 位密钥的 Hmac-Sha1)Keyczar https://pypi.python.org/pypi/python-keyczar:
创建随机密钥:
$> python keyczart.py create --location=path_to_key_set --purpose=sign
$> python keyczart.py addkey --location=path_to_key_set --status=primary
匿名电话号码:
from keyczar import keyczar
def anonymize(phone_num):
signer = keyczar.Signer.Read("path_to_key_set");
return signer.Sign(phone_num)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)