首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SHA-1摘要缩减

SHA-1摘要缩减
EN

Stack Overflow用户
提问于 2012-08-04 06:58:35
回答 1查看 151关注 0票数 0

我正在使用二维码条形码在我的系统中存储UUID,我需要检查生成的条形码是否是我的,而不是别人的。我还需要保持编码的数据简短,以便二维码保持在较低的版本范围内,并保持易于扫描。

我的方法是获取UUID原始值数字(一个128位的值)和一个16位的校验和,然后在转换为二维码之前对该数据进行Base64编码。到目前为止,一切都很好,一切都很顺利。

为了生成校验和,我将获取UUID的字符串版本,并将其与一个长的秘密字符串组合在一起,然后将奇数字节进行XOR运算,以生成SHA-1散列。但是这个散列太长了,所以我将所有的旧字节XOR在一起,产生一半的校验和,同样地,用偶数字节产生另一半。

我担心的是,我已经不必要地损害了SHA-1系统,通过XORing它下来。只从结果中的某个位置获取两个未处理的字节会更好吗?我承认16位校验和不会像160位校验和那样安全,但这是我必须为条形码的可用性付出的代价。我真的不想发现的是,我现在提供了一个校验和,它很容易破解,因为UUID是以明文传输的。

如果有更好的生成校验和的方法,这也是对这个问题的一个合适的回答。一如既往的感谢您的时间,或者只是阅读这篇文章,如果您发布了答案,请加倍感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-04 14:55:17

没有理由去做任何XORing。只取前两个字节是一样(在)安全的。

要使代码版本尽可能小,您可能需要将144位值转换为十进制字符串并对其进行编码。QR码具有不同的字符集和高效的数字编码。Base64只能在二维码中编码为8位的值,所以你可以在这里添加30%。

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

https://stackoverflow.com/questions/11804360

复制
相关文章

相似问题

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