openssl sha256两种计算方式的差异
openssl sha256 difference between two way of calculating
我在C++中使用openssl sha256函数。下面两种计算sha256的方法有什么区别?
方法1:只需像下面的一样调用SHA256方法
SHA256((unsigned char*)buffer_to_hash, buffer_size, hashed_payload);
方法2:使用SHA256_CTX、SHA256_Init、SHA256_Update和SHA256_Final。如前所述使用openssl和C++生成sha256
两个程序产生相同的结果
这里已经提到了两种方法的示例
模块错误等等,两者的意图基本不同。第一个进行批处理。也就是说:你给它一个完整的字符串,它就会产生这个完整字符串的散列。
第二个是增量哈希。如果你不能(或不想)一次访问整个字符串进行散列,它允许你读取一些数据,对其进行操作,读取更多数据,对它进行操作,等等,直到你读取了所有数据。最后,您可以获得整个数据流的总体哈希。
举个例子,假设你在一台RAM为4Gg的计算机上运行这个程序,并且你想散列一个16GB的文件。由于数据无法放入RAM(甚至无法接近RAM),因此在这种情况下,第二个可能是更好的选择。同样,如果你通过网络接收数据,但不(一定)想存储所有原始数据包,这样你就可以对它们进行哈希处理并(例如)确认接收。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- 如何在c++中为模板函数实例创建快捷方式
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 我们如何并行运行算法的 n 个实例并以有效的方式计算结果函数的平均值?
- OpenGL应用程序在不同的计算机上的工作方式不同
- 我需要以尺寸方式计算数组的平均值
- 如何计算排队多少个字?更智能的方式
- 这种计算大数的方式如何工作
- 如何计算Flops/IOPS,其使用方式
- 计算差异数据并通过网络发送的最佳方式是什么
- 需要帮助弄清楚此 c++ 代码的计算方式
- Fortran COMPLEX的计算方式与C++不同
- openssl sha256两种计算方式的差异
- 在C++OpenMP中使用蒙特卡罗方法以两种方式计算圆周率
- gcc对vla的sizeof操作符的计算方式是否不同
- 以最优化的方式计算x到x的幂
- Turbo C++ 和 GCC(在 Windows 上使用代码块)以不同的方式计算相同的三元表达式