Crypto++使用(1)

于 2020-05-07 发布

之前突发奇想想要用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());

这里是以字符串作为计算对象。通用的部分是:

  1. byte数组,长度根据用的算法来确定(有对应的常量),比如SHA256::DIGESTSIZE,MD5的就是MD5::DIGESTSIZE
  2. 算法的class对象
  3. 计算Digest,第一个参数是算出来的东西写到哪里去,第二个参数就是计算的内容(byte指针形式给定),第三个是指明计算内容的长度(这里就是字符串长度)

目录