我正在使用一个数据集,该数据集包含需要公开发布的字符串名称,但不需要显示原始名称(即我需要能够区分不同的名称,但最终结果需要类似于"e7fx8yuo“,其中原始数据集有"John”)。
此方法的要求听起来类似于散列的过程,但需求较少(即我不需要可变长度的名称来映射到单个长度的散列),但是名称需要映射到唯一的字符串(两个不同的名称不能映射到同一个字符串)。
我正计划用python编写这篇文章,但我并不完全确定我想要实现的过程是什么。如果可能的话,我还希望‘散列’最终产品字符串的行为方式类似于github生成存储库名称建议的方式(“重新想象-内存”而不是"e7fx8yuo“,因为一串完整的单词更容易记忆和记忆)。在python中有什么模块可以帮我做到这一点吗?
发布于 2017-07-01 23:05:34
正如我在评论中所说的,这听起来像是数据掩蔽。下面是一个基本实现:
from collections import defaultdict
from string import ascii_lowercase
from random import choice
random_strings = set()
def random_string():
while True:
result = ''.join(choice(ascii_lowercase) for _ in range(8))
if result not in random_strings:
random_strings.add(result)
return result
masks = defaultdict(random_string)
print(masks['Adam'])
print(masks['Adam'])
print(masks['Bob'])输出:
qmmwavuk
qmmwavuk
ykzlvfafhttps://stackoverflow.com/questions/44865996
复制相似问题