之前突发奇想想要用SHA256来生成密码,搜索发现C++主要的加密库是Crypto++。但是api比较晦涩难懂(不像Java的Maven那种清晰明了),所以找了个例子来看。
首先是加密部分:
1
2
3
4
CryptoPP::SHA256 hash;
byte digest[CryptoPP::SHA256::DIGESTSIZE];
std::string message;
hash.CalculateDigest(digest, (byte*)message.c_str(), message.length());
这里是以字符串作为计算对象。通用的部分是:
- byte数组,长度根据用的算法来确定(有对应的常量),比如SHA256::DIGESTSIZE,MD5的就是MD5::DIGESTSIZE
- 算法的class对象
- 计算Digest,第一个参数是算出来的东西写到哪里去,第二个参数就是计算的内容(byte指针形式给定),第三个是指明计算内容的长度(这里就是字符串长度)