C++加解密之sha256和md5
C++中的加解密算法
C++是一种广泛使用的编程语言,它具有强大的加密和解密算法库。在C++中,你可以使用许多不同的加密算法来保护你的数据,其中包括SHA-256和MD5。
SHA-256是一种安全哈希算法,它将输入数据转换为固定长度的哈希值。SHA-256算法的主要用途是验证数据的完整性,因为它对于相同的输入数据总是产生相同的哈希值。如果你有两个不同的文件,它们的SHA-256哈希值相同,那么这两个文件就是相同的。
C++中的SHA-256实现通常使用OpenSSL库。下面是一个示例代码:
#include <iostream> #include <iomanip> #include <openssl/sha.h> std::string sha256(const std::string str) { unsigned char hash[SHA256_DIGEST_LENGTH]; SHA256_CTX sha256; SHA256_Init(&sha256); SHA256_Update(&sha256, str.c_str(), str.size()); SHA256_Final(hash, &sha256); std::stringstream ss; for(int i = 0; i < SHA256_DIGEST_LENGTH; i++) { ss << std::hex << std::setw(2) << std::setfill('0') << (int)hash[i]; } return ss.str(); }
这个函数接受一个字符串作为输入并返回其SHA-256哈希值。这个函数使用了OpenSSL库中的SHA256函数。SHA256函数将输入数据分成块,并为每个块计算哈希值。最后,函数返回一个由16进制字符串表示的哈希值。
MD5是一种较早的哈希算法,它也将输入数据转换为固定长度的哈希值。与SHA-256不同,MD5算法已经被证明存在漏洞,因此不再建议使用它来保护敏感数据。但是,MD5仍然可以用于一些非敏感数据的完整性验证。
C++中的MD5实现通常使用OpenSSL库。下面是一个示例代码:
#include <iostream> #include <iomanip> #include <openssl/md5.h> std::string md5(const std::string str) { unsigned char hash[MD5_DIGEST_LENGTH]; MD5_CTX md5; MD5_Init(&md5); MD5_Update(&md5, str.c_str(), str.size()); MD5_Final(hash, &md5); std::stringstream ss; for(int i = 0; i < MD5_DIGEST_LENGTH; i++) { ss << std::hex << std::setw(2) << std::setfill('0') << (int)hash[i]; } return ss.str(); }
这个函数接受一个字符串作为输入并返回其MD5哈希值。这个函数使用了OpenSSL库中的MD5函数。MD5函数将输入数据分成块,并为每个块计算哈希值。最后,函数返回一个由16进制字符串表示的哈希值。
版权声明:
作者: freeclashnode
链接: https://www.freeclashnode.com/news/article-1813.htm
来源: FreeClashNode
文章版权归作者所有,未经允许请勿转载。
免费节点实时更新
热门文章
- 9月15日|20.4M/S,Shadowrocket/V2ray/SSR/Clash免费节点订阅链接每天更新
- 10月1日|23M/S,Shadowrocket/Clash/SSR/V2ray免费节点订阅链接每天更新
- 9月20日|19.4M/S,V2ray/SSR/Shadowrocket/Clash免费节点订阅链接每天更新
- 9月19日|23M/S,Clash/SSR/Shadowrocket/V2ray免费节点订阅链接每天更新
- 9月18日|22.9M/S,Clash/Shadowrocket/V2ray/SSR免费节点订阅链接每天更新
- 9月16日|18M/S,SSR/Shadowrocket/Clash/V2ray免费节点订阅链接每天更新
- 10月2日|22.9M/S,V2ray/Shadowrocket/Clash/SSR免费节点订阅链接每天更新
- 10月3日|20.9M/S,SSR/V2ray/Clash/Shadowrocket免费节点订阅链接每天更新
- 9月17日|21.6M/S,SSR/Shadowrocket/V2ray/Clash免费节点订阅链接每天更新
- 10月5日|22.5M/S,Clash/V2ray/SSR/Shadowrocket免费节点订阅链接每天更新
最新文章
- 10月8日|18.9M/S,Clash/SSR/V2ray/Shadowrocket免费节点订阅链接每天更新
- 10月7日|21.5M/S,V2ray/Clash/Shadowrocket/SSR免费节点订阅链接每天更新
- 10月6日|19.5M/S,Shadowrocket/Clash/SSR/V2ray免费节点订阅链接每天更新
- 10月5日|22.5M/S,Clash/V2ray/SSR/Shadowrocket免费节点订阅链接每天更新
- 10月4日|22M/S,Clash/V2ray/SSR/Shadowrocket免费节点订阅链接每天更新
- 10月3日|20.9M/S,SSR/V2ray/Clash/Shadowrocket免费节点订阅链接每天更新
- 10月2日|22.9M/S,V2ray/Shadowrocket/Clash/SSR免费节点订阅链接每天更新
- 10月1日|23M/S,Shadowrocket/Clash/SSR/V2ray免费节点订阅链接每天更新
- 9月30日|18.8M/S,SSR/Clash/V2ray/Shadowrocket免费节点订阅链接每天更新
- 9月29日|20.6M/S,SSR/Shadowrocket/Clash/V2ray免费节点订阅链接每天更新