【问题标题】:concatenate or "xor" keys before hash to create unique id?在哈希之前连接或“xor”键以创建唯一ID?
【发布时间】:2011-05-19 17:36:56
【问题描述】:

我想为设备创建一个唯一的 id,所以我决定创建 SHA1(mac XOR timestamp XOR user_password)。是否存在与此相关的安全问题?做SHA1(mac CONCATENATE timestamp CONCATENATE user_password)会更好吗?

谢谢

【问题讨论】:

    标签: security hash sha1 xor


    【解决方案1】:

    使用连接 - 然后您将基于所有可用源数据的哈希值。

    如果您使用 XOR,那么您的一部分源数据可能会在传递给散列函数之前“取消”剩余数据的部分(或全部)位。

    连接而不是异或不会影响存储散列所需的空间 - 无论源数据大小如何,生成的 SHA1 散列始终为 20 字节。

    【讨论】:

    • 谢谢你,好的,我认为这是“更多”风险,但只是稍微多一点风险,因为即使一个片段取消了其他片段的数据,sha1 显然会产生一个强大的哈希,我错了吗?
    • @user529361:问题不在于散列的强度,而在于源数据的“唯一性”。例如,SHA1(1^2^3) == SHA1(1^3^2) == SHA1(2^1^3) == SHA1(2^3^1) == SHA1(3^1^2) == SHA1(3^2^1),而SHA1(123) != SHA1(132) != @9876543430@ != @987 @ != SHA1(312) != SHA1(321) 等等等等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多