2TB CSV 中的帐号匿名化

2024-02-16

我有大约 2TB 的 CSV,其中第一个2 列包含两个身份证号码。这些数据需要匿名,以便数据可用于学术研究。匿名化可以(但不一定)是不可逆的。这些不是医疗记录,所以我不需要最奇特的加密算法。

问题:

标准哈希算法会生成很长的字符串,但我必须进行大量 ID 匹配(即“对于包含 ID XXX 的数据中的行子集,执行...)”来处理匿名数据,因此这并不理想。有没有更好的办法?

例如,如果我知道有大约 1000 万个唯一帐号,是否有使用整数集 [1:10million] 作为替换/匿名 ID 的标准方法?

计算限制是数据可能会在 32 核 ~500GB 服务器机器上进行匿名化。


我假设您想要进行一次传递,一个带有 ID 的 CSV 数字作为输入,另一个带有匿名数字的 CSV 作为输出。我会 还假设唯一 ID 的数量约为 10 万元以下。

我认为最好使用一些完全任意的 从一组 ID 号 (N) 到一组的一对一函数 去识别化号码 (D)。这样会更安全。如果你用过一些 某种哈希函数,对手知道哈希是什么, N 中的数字可以通过 a 来恢复,而不需要太多麻烦 字典攻击。相反,我建议使用一个简单的查找表:ID 1234567 映射到去识别号码 4672592 等。对应关系是 存储在另一个文件中,没有该文件的对手将无法 能够做很多事。

在您描述的机器上,有 1000 万条或更少的记录, 这不是什么大问题。伪 Python 中的 sketch 程序:

mapping = {}
unused_numbers = list(range(10000000))

while data:
    read record
    for each ID number N in record:
        if N in mapping:
            D = mapping[N]
        else:
            D = choose_random(unused_numbers)
            unused_numbers.del(D)
            mapping[N] = D
        replace N with D in record
    write record

write mapping to lookup table file
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2TB CSV 中的帐号匿名化 的相关文章

随机推荐

  • 为 iOS 应用程序提交开放图操作?

    对于 App Store 中尚不存在的 iOS 应用程序 当我提交 Facebook Open Graph Api 的操作时 我应该为 重现操作的步骤 编写什么 当您拥有这样的本机移动应用程序时 您可以提交应用程序流程的屏幕截图作为可接受的
  • 将文件读取为元组列表

    我想使用 Python 读取文本文件 我的清单必须是这样的 mylist 34 968398 6 487265 34 969448 6 488250 34 967364 6 492370 34 965735 6 582322 我的文本文件是
  • 动态选中/取消选中树中的复选框

    我有一个类似的问题如果在 JQuery 中未选中所有子节点 则取消选中父节点 https stackoverflow com questions 6556446 uncheck parent node if all children unc
  • 写入 Visual Studio 的输出窗口

    我正在尝试向输出窗口写入一条消息以进行调试 我搜索了一个类似Java的函数system out println 我试过Debug Write Console Write and Trace Write 它不会给出错误 但也不会打印任何内容
  • devise 和 Rails 3 中的 http 身份验证

    我有一个使用 devise on Rails 3 的应用程序 我想启用 http 身份验证 以便我可以从 iPhone 应用程序对我的 Web 应用程序进行身份验证 如何通过我的 iPhone 应用程序进行身份验证以进行设计 这是安全的还是
  • 升级.net紧凑框架版本后出现异常

    我已通过 Visual Studio 将项目从 NET 2 0 升级到 NET 3 5Project gt Upgrade Project 升级后 当我编译项目时 出现错误 The type System Windows Forms Dat
  • Undertow 中的图像/媒体 MIME 类型响应

    我一直在努力寻找一种在 Undertow 中传递 jpeg png 或其他内容的方法 发送 byte 不起作用 并且由于 Undertow 是非阻塞的 我不想通过执行通常的操作在输出上写入文件 exchange getOutputStrea
  • Spring Data JPA - JpaRepository 中的自定义排序

    我正在将 Spring Data JPA 与 Spring Data REST 一起使用 并且我已经为我的 JpaRepository 创建了一个 JpaRepositoryThing entity Repository public in
  • 如何设置 Angular2 url 的查询参数?

    我需要设置一个带有查询参数的网址 例如 Questions id 1234 pageid 0 我尝试通过router Navigate Questions id 1234 pageid 0 但没有运气 导航后浏览器显示如下 Question
  • wkhtmltopdf 尝试从 http 而不是文件加载

    这是一个奇怪的小问题 导致我在 SO 上发布我的第一个问题 我正在使用 wkhtmltopdf 将 HTML 文档转换为 PDF 作为 Rails 应用程序的一部分 为此 我将 Rails 网页渲染为临时目录中的静态 HTML 文件 将静态
  • UInt64 和“在检查模式下编译时操作溢出” - CS0220

    这感觉像是一个愚蠢的问题 但我似乎看不到答案 我有一个 UInt64 它的最大值应该是 UInt64 MaxValue 18446744073709551615 但是 当我尝试分配一个适度大小的数字时 我收到 在检查模式下编译时操作溢出 的
  • func 在 R-Format 指令集中意味着什么?

    I am very new to Assembly language I was reading about MIPS architecture and I am stuck with the last field of the Regis
  • 如何确保java8流中的处理顺序?

    我想处理里面的列表XMLjava 对象 我必须确保处理所有元素才能收到它们 因此我应该打电话给sequential在各个stream I use list stream sequential filter forEach 或者只要我不使用并
  • 在 Three.js 中使用 renderOrder

    我想在场景中有两个重叠的对象 但我想定义应该首先绘制哪个对象 我这里有一个代码示例 http jsfiddle net sg02e5sm 1 http jsfiddle net sg02e5sm 1 我在用着renderOrder 1对于第
  • iPhone 应用程序在 didFinishLaunchingWithOptions 之前崩溃

    我的 iPhone 应用程序工作正常 但每当我在设备或模拟器上运行它时 它就会突然崩溃 并且它不会在日志中向我报告任何有用的信息 它只会记录以下无用的信息 2014 02 05 17 09 34 069 TeacherAssistant 7
  • 如何对Dataframe的多列执行单一操作

    我有以下数据框 df gt gt gt TSLA MSFT 2017 05 15 00 00 00 00 00 320 68 2017 05 16 00 00 00 00 00 319 69 2017 05 17 00 00 00 00 0
  • contenteditable .execCommand() 未触发?

    我正在尝试使用 contenteditable 自定义所见即所得编辑器 我使用以下代码使所选文本变为粗体 wysiwyg b click function document execCommand bold false true alert
  • Python C 互操作性

    我希望将现有的 C 纯 C 即非 C 库包装到 Python 中 以便我可以从 Python 脚本中调用它 各种可用的方法 C Api SWIG 等 中哪种方法最合适 与 Ctypes 一起使用 它是标准发行版的一部分并且运行良好 基本上你
  • CSS - 翻转一个元素,并使另一个元素可见

    在CSS中 当我滚动一个元素时 是否有可能使另一个元素可见 我有一个图标 当有人将鼠标悬停在它上面时 我希望它显示一个描述该图标功能的文本元素 这是我一直使用的纯 CSS 工具提示 效果很好 即使在 IE 中也是如此 a hover bac
  • 2TB CSV 中的帐号匿名化

    我有大约 2TB 的 CSV 其中第一个2 列包含两个身份证号码 这些数据需要匿名 以便数据可用于学术研究 匿名化可以 但不一定 是不可逆的 这些不是医疗记录 所以我不需要最奇特的加密算法 问题 标准哈希算法会生成很长的字符串 但我必须进行