c++ 加密MD5/SHA1/BASE64

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

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由MD4MD3MD2改进而来,主要增强算法复杂度和不可逆性。

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"
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值