亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C++ md5加密與SHA比較

c++
小樊
84
2024-07-18 14:09:49
欄目: 編程語言

在C++中,可以使用第三方庫來實現MD5加密和SHA加密。以下是使用openssl庫實現MD5和SHA-256加密的示例代碼:

#include <iostream>
#include <openssl/md5.h>
#include <openssl/sha.h>
#include <cstring>

std::string md5(std::string input) {
    unsigned char digest[MD5_DIGEST_LENGTH];
    MD5((unsigned char*)input.c_str(), input.length(), digest);

    char mdString[(MD5_DIGEST_LENGTH * 2) + 1];
    for(int i = 0; i < MD5_DIGEST_LENGTH; i++)
         sprintf(&mdString[i*2], "%02x", (unsigned int)digest[i]);

    return std::string(mdString);
}

std::string sha256(std::string input) {
    unsigned char digest[SHA256_DIGEST_LENGTH];
    SHA256((unsigned const char*)input.c_str(), input.length(), digest);

    char mdString[(SHA256_DIGEST_LENGTH * 2) + 1];
    for(int i = 0; i < SHA256_DIGEST_LENGTH; i++)
         sprintf(&mdString[i*2], "%02x", (unsigned int)digest[i]);

    return std::string(mdString);
}

int main() {
    std::string input = "Hello, world!";
    
    std::string md5hash = md5(input);
    std::string sha256hash = sha256(input);
    
    std::cout << "MD5 hash: " << md5hash << std::endl;
    std::cout << "SHA-256 hash: " << sha256hash << std::endl;
    
    return 0;
}

在上面的示例中,md5函數和sha256函數分別用于計算輸入字符串的MD5和SHA-256哈希值。main函數中演示了如何調用這兩個函數并輸出哈希值。

需要注意的是,MD5雖然在過去被廣泛使用,但現在已經不推薦使用,因為其存在安全性弱點。SHA-256是目前被廣泛認可的安全哈希函數之一。如果需要更高級別的安全性,可以使用更長的SHA哈希函數,如SHA-384或SHA-512。

0
高淳县| 贵定县| 社旗县| 易门县| 明水县| 永康市| 苍南县| 喀喇| 石渠县| 日土县| 忻城县| 麻江县| 潢川县| 贞丰县| 务川| 新津县| 宁晋县| 石台县| 奉节县| 大荔县| 娱乐| 清原| 娄烦县| 铜山县| 新巴尔虎左旗| 奎屯市| 鄂托克前旗| 福清市| 金坛市| 蛟河市| 繁峙县| 南木林县| 博白县| 上蔡县| 邯郸县| 井陉县| 蕉岭县| 青冈县| 天全县| 读书| 哈尔滨市|