hash - SHA 的 SHA 作为复合对象的签名

标签 hash signature sha

我有一堆大对象,以及它们的结构和它们的向量。有时检查复合对象的完整性很重要;为此,我正在使用对象的 Sha256“签名”。

至少有两种方法可以定义复合对象的签名:通过计算组件串联的sha,或者通过计算的串联的sha >组件的 sha

也就是说,向量 Object0, Object1, Object2 的第一个方法签名是 sha(Object0 Object1 Object2),第二个方法是 sha(sha(Object0) sha(Object1) sha(Object2)).

我使用第二种方法对复合对象进行签名的速度要快得多。问题是,这种计算 shasha 的方法是否会增加冲突的机会?我是否因为我不是在散列对象而是在散列对象而牺牲任何安全性?

最佳答案

您所描述的结构是众所周知的 Merkle tree or hash tree . Git 存储库基本上是巨大的 Merkle 树。

这种结构的安全性与您选择的哈希函数的原像抵抗力一样强。

关于hash - SHA 的 SHA 作为复合对象的签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51508668/

相关文章:

java - 包括请求对象的操作、包括指令和哈希码?

java - Woocommerce api rest v2 签名不匹配

java - 如何使用 RSA256 算法生成 JWT 签名?

php - WordPress sha 256登录

python - 计算 SHA-1 摘要时 Python 和 C++ 中的不同结果

perl - 是否有一种简单的方法来验证散列元素的散列是否存在并已定义?

python - 为什么 Python 的无穷大哈希有 π 的数字?

java - Android 的 SHA-512 哈希

c++ - openssl 支持 RSASSA-PPS ,RSA EMSA-PSS 编码吗?

iphone - 在 iPhone 上生成 SHA1(图像)? (不正确的结果)