首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当追加文件java时更新校验和(MD5,SHA1)

当追加文件java时更新校验和(MD5,SHA1)
EN

Stack Overflow用户
提问于 2018-06-06 02:22:42
回答 2查看 1.1K关注 0票数 4

当我们在附加文件时有散列值时,是否可以更新校验和(MD5,SHA1)。

  1. 我有文件A已经上传到服务器,我已经有MD5文件,其中包含MD5哈希值。
  2. 我想在文件A中添加一个新的数据块(byte[]),并且我必须更新Md5文件的新哈希值。

是否可以更新新文件的MD5哈希值,而不需要读取整个文件A来创建文件哈希(因为A文件太大,耗时太长)。

EN

回答 2

Stack Overflow用户

发布于 2018-06-06 05:58:58

据我从维基百科关于MD5SHA1的文章中可以看出,这是可能的。您必须将旧哈希拆分回内部状态变量(应该只是一些位移位),然后继续计算新哈希。免责声明:我没有亲自尝试,只是阅读了有关算法的wikipage。

总之: MD5和SHA1是坏了的。请使用更新的sha2或sha3散列。

票数 2
EN

Stack Overflow用户

发布于 2018-06-06 02:28:39

我觉得你得再读一遍整个文件。

MD5工作(IIRC)通过维护一组内部的“寄存器”,这些寄存器随着算法消耗每个字节而改变。因此,从以前的MD5计算中继续进行的唯一方法是,如果您以某种方式将这些“寄存器”的状态存储在前一个端点上。

请看一下MD5计算的内部结构--我认为Javascript中有一些说明了如果您找不到Java计算的一般原理。即使写得很好,它也有点难看(我想这就是重点)。

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

https://stackoverflow.com/questions/50711401

复制
相关文章

相似问题

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