我正在为键值数据创建键,方法是获取几条 (<10) 标识数据的信息并从它们组合中生成一个哈希。为此,我一直在使用 CryptoPP 的SHA256::Update
功能,它可以让您一次添加片段:
#include "sha.h"
...
byte outputBuf[CryptoPP::SHA256::DIGESTSIZE];
CryptoPP::SHA256 hash;
hash.Update(pData1, lenData1); // pData* can point to int, double or std::string
hash.Update(pData2, lenData2);
...
hash.Final(outputBuf);
我注意到调用的顺序很Update
重要(即,如果您更改两个Update
语句的顺序,您将得到不同的哈希)。我希望这与订单无关。所以:
- CryptoPP 是否提供了一种方法来做到这一点?
- 如果没有,你能建议一种替代方法吗?到目前为止,我认为使用
xor
组合参数会起作用。一个问题是,如果两条数据相同,它们就会相互抵消。你能预见到这方面的问题吗?