【发布时间】:2012-07-23 01:00:44
【问题描述】:
我有一组 IIS 日志文件,我想发布以进行研究。
但是,这些包含一些我想匿名的敏感信息,例如:
UserName=XXXX65
我想使用一种算法,该算法保留了一些“用户友好”特性来对日志文件进行视觉检查,但它也足够安全,无法/不切实际地推导出原始用户名。
我不能只** 排除所有用户名,因为能够在日志中关联来自同一用户名的请求非常重要。
使用 SHA1 散列给了我类似的东西
UserName=AD5CBF0BA0A8646EBDBA6BE1B5DA4FCB1F385D39
这几乎是可用的,
SHA256 给出:
UserName=C9B84EE0DD2EFA53645D5268602E23A9E788903B31BBEB99C03982D9B50AF70C
这开始变得太长而无法使用,
UserName=1000:153JkeeGAqtG2UsHX57RBqm3O0DIkXhF:31BBDlQrUqqeyaMo/ikCJAXRC4fFXf82
在我看来太长而无法使用。
是否有一种算法可以提供相对较短的单向哈希但仍然安全/不可逆?
我正在寻找可以用肉眼扫描日志文件并仍然注意到用户名相关性的东西。
【问题讨论】:
-
一种方式哈希听起来不像有助于匿名的东西。如果我聪明地猜测“root”是一个可能的用户,那么我可以自己应用哈希函数来知道哪些日志对应于 root。
-
散列用户名是可逆的。毕竟你有一个所有用户名的列表,因为你已经有了映射回纯文本,所以破坏它是微不足道的。