117.info
人生若只如初见

C++ md5加密与SHA比较

?C++?,???????????MD5???SHA????????openssl???MD5?SHA-256???????:

#include 
#include 
#include 
#include 

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], "x", (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], "x", (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?

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe555AzsIAwNTDVw.html

推荐文章

  • C++异步回调和同步调用有什么不同

    在C++中,异步回调和同步调用有以下不同之处: 同步调用是指程序按照顺序执行代码,一行一行地执行代码,直到调用某个函数时会阻塞当前线程的执行,直到函数执行...

  • 为什么要在C++中使用异步回调

    在C++中使用异步回调可以提高程序的性能和并发性。通过异步回调,可以使程序在执行耗时操作时不阻塞主线程,从而提高程序的响应速度和并发能力。此外,异步回调还...

  • C++异步回调是如何实现的

    在C++中,实现异步回调通常会使用多线程或者异步任务库来实现。以下是一种简单的实现方式: 使用std::async和std::future:std::async函数可以在新的线程中异步执...

  • 学习C++异步回调对编程技能有何帮助

    学习C++异步回调可以帮助提升编程技能的几个方面: 异步编程能力:掌握C++异步回调可以帮助开发人员更好地理解和处理多线程、异步编程等相关概念,提升并发编程能...

  • C++ md5加密能否被破解

    C++中的MD5加密算法通常被认为是一种较为安全的加密方式,目前尚未有公开的方法可以直接破解MD5加密的结果。然而,由于计算机算力的提高和技术的发展,一些强大的...

  • C++ md5加密如何保障安全性

    在C++中,MD5加密算法本身并不足以保障数据的安全性,因为MD5算法已经被证明存在一定的漏洞,可以被破解。为了提高数据的安全性,可以采取以下措施: 使用更加安...

  • C++ md5加密有哪些应用场景

    数据传输安全:在网络传输中,使用MD5加密可以保护数据的安全性,防止数据被恶意篡改或窃取。 密码存储:在用户密码存储时,通常会使用MD5加密来保护用户的密码安...

  • C++ md5加密如何实现

    在C++中实现MD5加密可以使用现有的MD5库,也可以自己实现MD5算法。下面是一个简单的示例,展示如何用C++实现MD5加密: 使用现有的MD5库: #include #include #in...