哈希算法(Hash Algorithm)是一种将任意长度的输入数据映射到固定长度输出的算法
<functional>
(C++标准库中的通用哈希函数)和<openssl/sha.h>
(OpenSSL库中的SHA-256哈希函数)。#include <iostream>
#include <functional>
#include <openssl/sha.h>
std::hash
来计算整数或浮点数的哈希值,使用std::hash<std::string>
来计算字符串的哈希值。int main() {
int a = 42;
float b = 3.14f;
std::string s = "Hello, World!";
std::hash<int> hasher_int;
std::hash<float> hasher_float;
std::hash<std::string> hasher_string;
std::cout << "Hash value of int: " << hasher_int(a) << std::endl;
std::cout << "Hash value of float: " << hasher_float(b) << std::endl;
std::cout << "Hash value of string: " << hasher_string(s) << std::endl;
return 0;
}
#include <iostream>
#include <sstream>
#include <iomanip>
#include <openssl/sha.h>
std::string sha256(const std::string& input) {
unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, input.c_str(), input.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') << static_cast<int>(hash[i]);
}
return ss.str();
}
int main() {
std::string s = "Hello, World!";
std::string hashed_s = sha256(s);
std::cout << "SHA-256 hash value of string: " << hashed_s << std::endl;
return 0;
}
注意:在使用OpenSSL库之前,需要确保已经正确安装并配置了该库。具体安装方法取决于操作系统和包管理器。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。