操作步骤
1.哈希列表(Hash List)
2.读取文件,分块生成hash值
3.合并所有hash值再生成hash值
4.hash(hash(f1)…hash(f100))
问题:为什么要用哈希列表来验证呢?
·如果说整个文件全读出来,再重新生成一个md5值的话,会使得资源的开销过大。所以我们通过哈希文件来生成一个列表。整个列表有一个好处就是列表的话,我们把文件的每一块生成一个哈希值。
如下代码:
/*/*******************************************************************************
** **
** Jiedi(China nanjing)Ltd. **
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
*******************************************************************************/
/*****************************FILE INFOMATION***********************************
**
** Project :c++实战区块链核心密码学-基于openssl
** Contact : xiacaojun@qq.com
** 博客 : http://blog.csdn.net/jiedichina
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun