首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密码散列多个密钥

密码散列多个密钥
EN

Stack Overflow用户
提问于 2022-03-20 10:10:28
回答 1查看 53关注 0票数 0

如何使用SHA1(或类似的加密函数)散列有多个密钥的类(或结构),例如,

代码语言:javascript
复制
struct Foo{
   string name;
   int age;
   int score;
}

简单的方法是hash(has(name) + hash(age) + hash(score)),但哈希冲突是可能的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-20 10:24:10

如果整个结构只包含sizeof,则直接散列(即不分配任何数据,并且它的union是常量):您可以使用union来获得一个正确的字节数组,或者使用强制转换来获得一个char*以提供给哈希函数。

如果在struct/class中有动态数据,则需要序列化所有数据并将其发送到散列函数--显然,由于动态数据,其大小在执行过程中会有所不同。但是,您必须只调用hash一次(每个数据结构只调用一次),而在中,不可能将散列添加到一起--这是一派胡言。您还可以使用框架特性将struct/class序列化为文本流(通常是XML或JSON格式),并散列此序列化而不是二进制结构。

显然,所有这些都取决于平台--如果您愿意的话,您可以使用哪种加密API。

应用这些原则,碰撞(完全不可避免,数学证明)将不会超过任何其他类型的哈希数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71545803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档