您好,登錄后才能下訂單哦!
哈希算法(Hash Algorithm)是一種將任意長度的數據映射到固定長度輸出的單向函數
#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') << static_cast<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/md5.h>
std::string md5(const std::string &input) {
unsigned char digest[MD5_DIGEST_LENGTH];
MD5((unsigned char *)input.c_str(), input.size(), (unsigned char *)&digest);
std::stringstream ss;
for (int i = 0; i < MD5_DIGEST_LENGTH; ++i) {
ss << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(digest[i]);
}
return ss.str();
}
int main() {
std::ifstream file("example.txt", std::ios::binary);
if (!file) {
std::cerr << "Error opening file" << std::endl;
return 1;
}
std::string file_data((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
std::string file_hash = md5(file_data);
std::cout << "File MD5 hash: " << file_hash << std::endl;
return 0;
}
總之,哈希算法在C++加密中有廣泛的應用,可以用于密碼存儲、文件完整性檢查和數據一致性等方面。在實際應用中,需要根據具體需求選擇合適的哈希算法,并確保使用安全的實現方式。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。