C++ 使用 Crypto++ 库实现常用的加密算法

C++ 使用 Crypto++ 库实现常用的加密算法Crypto++ 库是开源的 C++ 数据加密算法库,支持如下算法:RSA、MD5、DES、AES、SHA-256 等等,其中对于加密有对称加密和非对称加密。本实验通过 Cryto++ 库对字符串进行 MD5 校验,并用 AES 加密和解密。1.1 知识点安装 Crypto++ 库并检验 学习 MD5 摘要算法 学习 AES...
摘要由CSDN通过智能技术生成

C++ 使用 Crypto++ 库实现常用的加密算法

 

Crypto++ 库是开源的 C++ 数据加密算法库,支持如下算法:RSA、MD5、DES、AES、SHA-256 等等,其中对于加密有对称加密和非对称加密。本实验通过 Cryto++ 库对字符串进行 MD5 校验,并用 AES 加密和解密。

1.1 知识点

  • 安装 Crypto++ 库并检验
  • 学习 MD5 摘要算法
  • 学习 AES 加密算法

1.2 效果截图

二、加密算法介绍

据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。 随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国家标准局公布实施了“美国数据加密标准(DES)”,民间力量开始全面介入密码学的研究和应用中,采用的加密算法有 DES、RSA、SHA 等。随着对加密强度需求的不断提高,近期又出现了 AES、ECC 等。 使用密码学可以达到以下目的:保密性:防止用户的标识或数据被读取。数据完整性:防止数据被更改。身份验证:确保数据发自特定的一方。

2.1 加密的类型介绍

根据密钥类型不同将现代密码技术分为两类: 对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。

对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的隐秘。 非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。

对称加密算法:

  • DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。
  • 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高
  • AES(Advanced EncryptionStandard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高

非对称算法:

  • RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。
  • DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准)
  • ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。

散列算法:

  • MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法。
  • SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位的数值。

著名的密码学算法库还有 OpenSSL 。OpenSSL 为网络通信提供安全及数据完整性的一种安全协议 ,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及 SSL 协议,并提供了丰富的应用程序供测试或其它目的使用。通过比较 Crypto++ 和 Openssl,我们可以发现 Crypto++ 支持的算法比 Openssl 多。

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值