您好,登錄后才能下訂單哦!
哈希算法(Hash Algorithm)在C++中有多種應用場景,主要用于數據結構(如哈希表)、密碼學、數據完整性校驗等領域。以下是一些常見的應用場景:
unordered_map
和unordered_set
等標準庫容器實現哈希表。這些容器內部使用哈希算法來計算鍵的哈希值,以便快速查找、插入和刪除操作。#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> age_map;
age_map["Alice"] = 30;
age_map["Bob"] = 25;
age_map["Charlie"] = 35;
std::cout << "Alice's age: " << age_map["Alice"] << std::endl;
return 0;
}
#include <iostream>
#include <string>
#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') << (int)hash[i];
}
return ss.str();
}
int main() {
std::string password = "my_password";
std::string hashed_password = sha256(password);
std::cout << "Hashed password: " << hashed_password << std::endl;
return 0;
}
#include <iostream>
#include <fstream>
#include <string>
#include <openssl/sha.h>
std::string sha256(const std::string& input) {
// ... (與上面相同的代碼)
}
bool verify_file_integrity(const std::string& file_path, const std::string& expected_hash) {
std::ifstream file(file_path, std::ios::binary);
if (!file) {
std::cerr << "Error opening file: " << file_path << std::endl;
return false;
}
std::string file_data((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
std::string computed_hash = sha256(file_data);
return computed_hash == expected_hash;
}
int main() {
std::string file_path = "example.txt";
std::string expected_hash = "expected_hash_value";
if (verify_file_integrity(file_path, expected_hash)) {
std::cout << "File integrity verified." << std::endl;
} else {
std::cout << "File integrity check failed." << std::endl;
}
return 0;
}
這些僅僅是哈希算法在C++中的一些應用場景,實際上哈希算法還有很多其他用途,如緩存鍵生成、唯一標識符生成等。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。