热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c++加密MD5/SHA1/BASE64

一、常用加密情况有三种:1.资源加密,如图片,音乐(防盗版)2.网络传输过程中的加密,避免被人拦

一、常用加密情况有三种 :

1. 资源加密,如图片,音乐(防盗版)

2. 网络传输过程中的加密,避免被人拦截并修改数据(防作弊)

3. 游戏数据加密(防作弊)


二、加密作用:防止盗版,防止作弊。


三、常见加密方式 :

MD5

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l. rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被“压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是md2、md4还是md5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。  

在计算上不大可能找到散列为相同的值的两个不同的输入;也就是说,两组数据的哈希值仅在对应的数据也匹配时才会匹配。数据的少量更改会在哈希值中产生不可预知的大量更改。所以你很难从加密后的文字中找到蛛丝马迹。
 

       常用的MD5加密是只有加密,没有解密方法的方案,即不可逆转。通过MD5加密,会生成一串字符。MD5的API简单点。

MD5由MD4、MD3、MD2改进而来,主要增强算法复杂度和不可逆性。

MD5一度被广泛应用于计算机安全领域。但由于近年来MD5的弱点不断被发现,以及当今计算机运算能力的不断提升,现在已经可能人为构造出两个具有相同MD5校验值的信息[2],使本算法不再适合现今的安全领域。目前,MD5算法因其普遍、稳定、快速的特点,仍广泛应用于普通数据的错误检查领域。例如在一些BitTorrent下载中,软件将通过计算MD5检验下载到的文件片段的完整性。

MD5算法较老,散列长度固定为128比特,随着计算机运算能力提高,更快地找到“碰撞”是有可能的。因此,在安全要求高的场合不应再使用MD5。



BASE64:

        可加解密

SHA1:

         单向加密,非逆向。MD5和SHA1就是目前使用最为广泛的良种加密算法。这两种算法都是基于MD4,但又略有不同。一般来说,SHA1计算速度比较慢,但抗穷举行能也更好。现在也会用于P2P软件中比较文件完整性


还有其它开源加密库,但是一般不会用到那么高级的库,所以一般情况下,这些加密方法就够了,有兴趣可以自己去研究其它库。


注意事项, 以C风格引入头文件。注意头文件的路径,如果存放路径不一样,不是crypto文件夹,就要改头文件路径。

#include "crypto/CCCrypto.h"

extern "C" {
#include "crypto/base64/libb64.h"
#include "crypto/md5/md5.h"
#include "crypto/sha1/sha1.h"
}


推荐阅读
  • 在Java开发中,使用BASE64编码通常可以直接利用JDK内置的库。然而,在Android平台上,由于安全性和兼容性的考虑,直接引用JDK中的`sun.misc.BASE64Decoder`会导致错误,因此需要引入第三方库来实现相同的功能。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 2017-2018年度《网络编程与安全》第五次实验报告
    本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • libsodium 1.0.15 发布:引入重大不兼容更新
    最新发布的 libsodium 1.0.15 版本带来了若干不兼容的变更,其中包括默认密码散列算法的更改和其他重要调整。 ... [详细]
  • 本文详细介绍了Java中的输入输出(IO)流,包括其基本概念、分类及应用。IO流是用于在程序和外部资源之间传输数据的一套API。根据数据流动的方向,可以分为输入流(从外部流向程序)和输出流(从程序流向外部)。此外,还涵盖了字节流和字符流的区别及其具体实现。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 如何使用MD5进行文件验证
    本文详细介绍MD5(Message-Digest Algorithm 5)的用途及如何通过MD5码来验证文件的完整性。 ... [详细]
  • addcslashes—以C语言风格使用反斜线转义字符串中的字符addslashes—使用反斜线引用字符串bin2hex—函数把包含数据的二进制字符串转换为十六进制值chop—rt ... [详细]
  • 深入探讨ASP.NET中的OAuth、JWT与OpenID Connect
    本文作为前文关于OAuth2.0和使用.NET实现OAuth身份验证的补充,详细阐述了OAuth与JWT及OpenID Connect之间的关系和差异,旨在提供更全面的理解。 ... [详细]
  • GNU GRUB(简称GRUB)是一个来自GNU项目的支持多启动的引导加载程序。它允许用户在同一台计算机上安装多个操作系统,并在启动时选择希望启动的系统。 ... [详细]
  • 最佳PHP源码加密工具推荐
    本文探讨了几款高效的PHP源码加密工具,旨在帮助开发者保护其代码免受未授权访问。文章不仅介绍了商业软件的选择,还提供了一些免费且实用的加密工具及其使用方法。 ... [详细]
  • 新萝卜Ghost Xp Sp3 装机版
    新萝卜GhostXpSp3装机版XLB_201305ZJB.iso大小:901457920字节MD5:EBE33B7DB119CF2D0B1D79F8F0FC22BFSHA1:0 ... [详细]
  • MD5(Message-Digest Algorithm 5),即消息摘要算法第五版,是一种广泛应用于计算机安全领域的散列函数,主要用于确保数据传输的完整性和验证数据的一致性。本文将介绍如何在Java编程环境中实现MD5加密。 ... [详细]
  • 本文介绍了如何使用Python3来比较两个JSON文件的内容是否完全相同,并在内容不一致时输出具体的不同之处。通过哈希值比较和逐项对比两种方法,提供了一个全面的解决方案。 ... [详细]
author-avatar
O臭煊儿O
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有