如何在类似哈希的匿名化函数中使用伪造者

How to Use faker in a Hash-like Anonymization Function

提问人:obviouslyalive 提问时间:10/7/2023 最后编辑:TheMasterobviouslyalive 更新时间:10/7/2023 访问量:42

问:

我正在寻找一个函数来使可重现的字符串匿名化。现在我专注于名称,我想要一个类似哈希的函数,它将输入名称字符串映射到唯一的输出名称。

>> anon_name('Alice Lopez')
'Grant Forsythe'

由于此项目将是开源的,因此无法从输出中找到输入名称的显式查找表。如果可能的话,我还想避免存储任何类型的外部查找表;我宁愿将其全部包含在一个函数中。

faker 库似乎提供了我想要的大部分功能。它可以基于随机数生成器生成许多名称。但从我所读到的内容来看,没有可重现的类似哈希的功能来将输入映射到生成的名称。 我想也许我可以使用输入名称在每次生成输出之前设置随机种子,例如:

class FakeMapper():
    def __init__(self):
        self.fake = Faker()

    def anon_name(name: str) -> str:
        Faker.seed(hash(name))
        return self.fake.name()
  1. 此实现是否存在任何性能或数据安全问题?我认为随机生成器为两个不同的种子生成相同名称存在一些碰撞风险,但我可以想到一些解决方法。
  2. 是否通过查找表实现,以便有人能够回退哪些随机种子将产生给定的初始输出?对于这个应用程序,这不是一个安全问题,因为我调用了这个名字,但它可能对我所要制作的其他一些数据类型有影响,我正在为之制作类似的匿名化功能。fakerhash()
  3. 有没有其他更符合我要求的实现?
Python 性能 安全 伪造者

评论


答: 暂无答案