c - 加速sha 512散列的方法?
问题描述
通过使用 openssl 的 sha 512 算法,我目前能够在 3 - 3.3 秒之间计算 2GB 文件的哈希值(我的 CPU 是 i7-5820k) - 包括打开、写入和关闭所需的时间文件(打开输入并将哈希写入文本文件)。
我想知道是否有任何已知的方法可以加快这个过程,或者我的硬盘是否完全有问题,造成了瓶颈(Seagate BarraCuda Green 2TB 5900RPM SATA 6Gb/s 64MB Cache)。
FILE *ftest=fopen(hashInBuf, "rb");
FILE *ftest2=fopen(hashOutBuf, "wt");
//HASH FUNCTION
SHA512_Init (&mdContext);
while ((bytes = fread (data, 1, 1024, ftest)) != 0)
SHA512_Update (&mdContext, data, bytes);
SHA512_Final (c,&mdContext);
for(i = 0; i < SHA512_DIGEST_LENGTH; i++){
fprintf(ftest2, "%02x", c[i]);
printf("%02x", c[i]);
(我目前用来计算 sha 512 的代码)
解决方案
推荐阅读
- elasticsearch - 如何在 Elasticsearch 中与 filter 和 must_not 一起编写至少 N 个术语的查询?
- python - 拆分数据框中的几列
- android-recyclerview - TextView 在 RecyclerView 中仅显示第一个字母
- scala - 如何使用 µPickle 序列化通用案例类?
- azure - 如何使用 Go SDK 在 Azure 存储中列出共享
- javascript - 使用 ajax 操作更新模态内容而不在用户操作后关闭它 - Odoo 前端
- batch-file - 重命名多个文件添加前缀
- angular - Angular 组件未获得 Google Chart 参考
- dart - Android 之类的日历,用于 dart 中的日期计算
- cypress - 无法使用 cypressJS 请求路由