通过SHA_init/SHA_update/SHA_final生成sha散列值
来源:互联网 发布:网络营销策划发展状况 编辑:程序博客网 时间:2024/05/16 07:49
在《sha1 -- 生成 sha1 散列值》中给出了可以生成 SHA1() 函数,它应用很简单。实际上,OpenSSL 还提供了另外一套 API 用以产生 sha1 散列值,该套 API 可以生成更大文件的散列值。比如在 32 位系统下,应用程序不能访问超过 4G (2[sup]32[/sup] )的内存空间,从 SHA1() 函数的第 1 个参数指针也知道,它所指向的空间也不能超过 4G ,因此如果对一个大于 4G 的文件,SHA1() 函数就不能胜任。此时可用的办法就是用下列的函数组合进行替代:
SHA1_Init() 是一个初始化参数,它用来初始化一个 SHA_CTX 结构,该结构存放弄了生成 SHA1 散列值的一些参数,在应用中可以不用关系该结构的内容。
SHA1_Update() 函数正是可以处理大文件的关键。它可以反复调用,比如说我们要计算一个 5G 文件的散列值,我们可以将该文件分割成多个小的数据块,对每个数据块分别调用一次该函数,这样在最后就能够应用 SHA1_Final() 函数正确计算出这个大文件的 sha1 散列值。
测试代码:
SHA1_Init() 是一个初始化参数,它用来初始化一个 SHA_CTX 结构,该结构存放弄了生成 SHA1 散列值的一些参数,在应用中可以不用关系该结构的内容。
SHA1_Update() 函数正是可以处理大文件的关键。它可以反复调用,比如说我们要计算一个 5G 文件的散列值,我们可以将该文件分割成多个小的数据块,对每个数据块分别调用一次该函数,这样在最后就能够应用 SHA1_Final() 函数正确计算出这个大文件的 sha1 散列值。
测试代码:
运行输出:
在上面函数中,我们将要处理的字串 "hello groad.net" 分割成 2 部分进行处理,第 1 部分处理前 6 个字节,第 2 部分处理剩下的字节。
阅读全文
0 0
- 通过SHA_init/SHA_update/SHA_final生成sha散列值
- sha
- sha
- sha
- SHA
- Java生成摘要(MD5 SHA-1)
- Java生成MD5摘要(MD5 SHA-1)
- HashMyFiles生成文件的SHA和MD5
- 生成文件的MD5、SHA、SHA256
- Qt那些类---用QCryptographicHash类生成MD5,SHA-1,SHA-2
- DES、RSA、MD5、SHA、随机生成加密与解密
- 通过js生成树
- 通过javascript生成GUID
- 通过VIew生成图片
- 通过Gridview生成excel
- 通过JS生成tab
- 通过dll生成lib
- 通过implib生成lib
- oracle 导入导出表
- Android源码分析之Builder模式
- [设计模式](八):组合模式(Composite)与享元模式(Flyweight)详解
- 【勤哲应用】用勤哲Excel服务器做机械企业管理系统
- 转载 C# 连接 Oracle 的几种方式
- 通过SHA_init/SHA_update/SHA_final生成sha散列值
- PhpStorm License Server
- HDU 6127 简化几何计数
- 守望者的逃离
- 0.1.3基本数据类型讲解3
- js中__proto__和prototype的区别和关系?
- 笨办法学 Python · 续 练习 50:`vi`
- C#设计模式(3)-工厂方法模式
- 26. Remove Duplicates from Sorted Array