MD5 对字符串加密和获取文件MD5值的实现

一.MD5对字符串加密

        我们使用openssl库对字符串进行MD5加密

#include <openssl/md5.h>
#include <openssl/evp.h>std::string calculate_md5(const std::string &input)
{unsigned char digest[MD5_DIGEST_LENGTH];std::string   md5;EVP_MD_CTX *mdContext = EVP_MD_CTX_new();EVP_DigestInit(mdContext, EVP_md5());EVP_DigestUpdate(mdContext, input.c_str(), input.length());EVP_DigestFinal(mdContext, digest, nullptr);EVP_MD_CTX_free(mdContext);char hexDigest[MD5_DIGEST_LENGTH * 2 + 1];for (int i = 0; i < MD5_DIGEST_LENGTH; ++i) {sprintf(hexDigest + (i * 2), "%02x", digest[i]);}hexDigest[MD5_DIGEST_LENGTH * 2] = '\0';md5 = std::string(hexDigest);return md5;
}

二.利用boost获取文件MD5值 

bool get_md5(std::string& filename, std::string& md5_out)
{unsigned char digest[16];MD5_CTX  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855315.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot项目mapper无法自动装配,未找到 ‘userMapper‘ 类型的Bean解决办法.

一开始我看到了这个回答&#xff1a;springboot项目mapper无法自动装配&#xff0c;未找到 ‘userMapper‘ 类型的 Bean解决办法&#xff08;含报错原因&#xff09;_无法自动装配。找不到 usermapper 类型的 bean。-CSDN博客 mapper无法自动装配&#xff0c;未找到 ‘userMap…

MyBatis系列四: 动态SQL

动态SQL语句-更复杂的查询业务需求 官方文档基本介绍案例演示if标签应用实例where标签应用实例choose/when/otherwise应用实例foreach标签应用实例trim标签应用实例[使用较少]set标签应用实例[重点]课后练习 上一讲, 我们学习的是 MyBatis系列三: 原生的API与配置文件详解 现在…

算力、存力、智算中心-2024北京AI算力产业峰会

2024北京AI算力产业峰会 时间&#xff1a;2024年9⽉25-27⽇ 地点&#xff1a;北京国家会议中⼼ 活动隶属&#xff1a;中国国际信息通信展览会 主办单位&#xff1a;工业和信息化部 执⾏单位&#xff1a;中国计算机⾏业协会信息存储与安全专委会 深圳热点资讯展览有限公司 …

自定义Unity组件——ABManager(AB包管理器)

需求描述 在Unity3D引擎中&#xff0c;AB包作为常用的游戏资源存储格式之一。而对于资源管理我们就不得不谈到集中管理的优势了&#xff0c;通过统一的接口加载和卸载AB包及其中的资源将进一步提升我们的编程效率。本文将围绕这个需求进行尝试。 功能描述 1. AB包的加载包括同…

【C#上位机应用开发实战】—机器视觉检测

#机器视觉 在现代工业生产中&#xff0c;机器视觉检测技术扮演着越来越重要的角色。它通过计算机视觉技术来实现对工件的自动化检测和判断&#xff0c;大大提高了生产效率和产品质量。而在机器视觉检测的应用中&#xff0c;C#作为一种简洁易用且功能强大的编程语言&#xff0c…

报表开发工具DevExpress Reporting v23.2 - 增强PDF导出、多平台打印等

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表。 DevExpress Reporting控件日前正式发布了v23.2…

ClickHouse安装与下载22.3.2.2

ClickHouse安装与下载 目录 1. ClickHouse简介 1.1 ClickHouse优点&#xff1a; 1.2 ClickHouse缺点&#xff1a; 1.3 ClickHouse引擎&#xff1a; 1.3.1 数据库引擎 1.3.2 表引擎 2. ClickHouse下载安装 2.1 ClickHouse下载安装 2.2 ClickHouse使用 1. ClickHouse简…

中国剩余定理——AcWing 204. 表达整数的奇怪方式

中国剩余定理 定义 中国剩余定理最早出自我国古代的《孙子算经》&#xff0c;是数论中的一个重要定理。它描述了这样一种情况&#xff1a;在模运算下&#xff0c;对于一组线性同余方程组&#xff0c;存在唯一解的条件和求解方法。 运用情况 常用于在一些涉及到按不同模的余…

实习日记(一)

实习日记&#xff08;一&#xff09; 前话 来快手实习有一段时间了&#xff0c;博客也有一段时间没有更了&#xff0c;最近一段时间的状态是白天忙着工作晚上忙着实验室的科研&#xff0c;虽然很累但收获很多&#xff0c;让我了解到工作和科研确实是两个不同的方向&#xff0…

实际项目中如何实现分库分表

数据库分库分表 数据库分库分表是一种数据库设计和架构优化策略&#xff0c;目的是为了应对大规模数据和高并发访问带来的挑战。它将单个大型数据库分解为多个较小的、更易于管理的部分&#xff0c;即“库”&#xff08;也称为数据仓库或实例&#xff09;&#xff0c;并根据某…

安全宣传咨询日活动向媒体投稿记住这个投稿好方法

在信息爆炸的时代,作为单位的信息宣传员,我肩负着将每一次重要活动,特别是像“安全宣传咨询日”这样的公益活动,有效传达给公众的重任。这份工作看似简单,实则充满了挑战,尤其是在我初涉此领域时,那段曲折而又难忘的投稿经历,至今记忆犹新。 初探投稿之海,遭遇重重困难 起初,我…

设计模式(四)创建者模式之单例模式

单例模式 单例设计模式单例模式的结构单例模式的实现饿汉式-方式1&#xff08;静态变量方式&#xff09;饿汉式-方式2&#xff08;静态代码块方式&#xff09;懒汉式-方式1&#xff08;线程不安全&#xff09;懒汉式-方式2&#xff08;线程安全&#xff09; synchronized 关键字…

注册安全分析报告:PingPong

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …

vscode-关闭ts与js语义校验

1.ts与js语义校验 TypeScript&#xff08;TS&#xff09;和JavaScript&#xff08;JS&#xff09;在语义校验方面有很大的不同。TypeScript是一种静态类型检查的编程语言&#xff0c;它是JavaScript的一个超集&#xff0c;为JavaScript添加了类型系统和其他一些特性。而JavaScr…

12.爬虫---PyMysql安装与使用

12.PyMysql安装与使用 1.安装 PyMySQL2.使用PyMySQL2.1创建数据表2.2连接数据库2.3增加数据2.4修改数据2.5查询数据2.6删除数据2.7关闭连接 3.总结 1.安装 PyMySQL PyMySQL是Python中用于连接MySQL数据库的库&#xff0c;安装起来非常简单。通常情况下&#xff0c;只需要在命令…

从零开始:精通基于大型语言模型(LLM)的Agent应用开发

一、引言 随着人工智能技术的飞速发展&#xff0c;大型语言模型&#xff08;Large Language Model&#xff0c;简称LLM&#xff09;已经成为自然语言处理&#xff08;NLP&#xff09;领域的核心技术之一。这些模型&#xff0c;如GPT、BERT等&#xff0c;通过大量的文本数据训练…

八个精品ETL工具,总有一款适合您的业务需求!

在数字经济高速发展的今天&#xff0c;数据的价值愈发凸显。ETL&#xff08;Extract, Transform, Load&#xff09;工具作为数据集成的关键一环&#xff0c;不仅帮助企业高效管理海量数据&#xff0c;还能为商业决策提供实时洞察。本文将深入探讨目前市场上的8款领先ETL工具&am…

大模型API和私有化部署的区别与联系

大模型 API&#xff08;Application Programming Interface&#xff09;和私有化部署是使用大规模机器学习模型的两种主要方式。它们有各自的优点和缺点&#xff0c;适用于不同的应用场景。以下是它们的区别与联系&#xff1a; 大模型 API 特点&#xff1a; 即用即用&#x…

Java—装饰器模式

介绍 装饰器模式 装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你动态地将行为添加到现有的对象中&#xff0c;而无需修改其代码。装饰器模式提供了比继承更灵活的功能扩展方式。 主要角色 Component&#xff1a;定义一个对…

变量不自动初始化

代码&#xff1a; /*《AVR专题精选》随书例程2.编程技巧项目&#xff1a;不对变量进行初始化文件&#xff1a;main.c说明&#xff1a;演示不对变量进行默认初始化的方法。在proteus仿真例程中&#xff0c;按下按键&#xff0c;就可以看到两个变量输出结果的变化。作者&#xf…