#
哈希计算注意事项
#
1. 哈希正确性校验
由于文件读取方式不同、字符串编码不同,有可能导致采用同样的哈希算法,计算出的哈希值却完全不同。在法庭上出证时,为了保证客观公正,需要采用公开的第三方工具对哈希值进行验证。因此,开发者需要保证自己实现的哈希计算和三方工具的计算结果完全一致。我们推荐如下的在线哈希值计算工具。在开发者实现了哈希计算后,请务必和以下三方工具的计算结果进行比对,保证计算结果完全一致。
#
文件哈希验证
该工具支持对文件计算哈希值。可在网页上直接上传原始文件,并获得文件的各种不同哈希算法的计算结果。
#
文本哈希验证
该工具支持对文本数据计算哈希值。在网页中直接粘贴文本数据,可计算出各种不同哈希算法的结果。
#
2. 哈希的法律有效性保证
#
防止证据链条中断
在实现数据登记逻辑时,请确保用来计算哈希值的原始数据,就是未来在出证时,要拿给法官看的数据,不要添加任何额外的处理。防止因为引入了可篡改的处理,导致证据链条断裂:
graph LR A(原始数据) -->|不可篡改| B(哈希值) B -->|不可篡改| C(链上确权记录)
一个错误的例子,比如我们把原始数据存在数据库中,并且对数据库中的主键ID进行哈希,然后把哈希值进行登记:
graph LR A(原始数据) -->|可篡改| B(数据库中的ID) B -->|不可篡改| C(哈希值) C -->|不可篡改| D(链上确权记录)
这样的实现,在法律上就无法成为有效的证据。因为哈希值是数据库中ID的哈希值,链上的确权记录只是确认了这个ID值的存在性。但是这个ID值对应的数据,在我们登记了这个ID后,还是可以随时修改的。我们就无法证明原始数据在当时的存在性了。
#
防止原始数据看不懂
在对原始数据计算哈希值以前,请不要对原始数据做加密、编码等处理,防止在出证时,法官因为看不懂原始数据,而无法支持我们的主张。
在法庭上,最直观的证据展示,就是原始数据计算哈希值,哈希值和确权记录中的一致。然后查看原始数据,其中包含着我们主张的内容,比如和侵权方相似的设计图。
由于法官不是技术出身,很难理解技术细节,如果和哈希值一致的原始数据无法直接被法官看懂(比如进行了加密、或者是二进制编码、Base64编码),就会增加我们的举证难度,有可能会导致证据被判定无效。