DES算法的CBC模式实现(C++代码编写)

 ⚡️ 欢迎来到 注意安全CL 的博客主页 🌷

🙋  我的专栏推荐  🙋

        🌱《软件安装与资源共享》分享好用的工具软件,条理清晰资源多多🍗,欢迎来访🐇

        🌱《信息安全-初级网络》有全面的网络基础知识分享,欢迎来访🙉

        🌱《信息安全-高级网络》涉及高级网络技术知识,实验案例部署配置,快速提升🐲 

        🌱《信息安全-渗透测试》有超全漏洞复现、攻击方式、渗透工具分享欧~💦

        🌱《信息安全-密码学》校内布置的剪短算法练习,帮助你更快爱上这一学科 🌺

目录

一、DES算法和CBC模式

二、代码的主要组成部分及其功能

 三、源代码附上


一、DES算法和CBC模式的介绍

        DES(Data Encryption Standard,数据加密标准)是一种基于密钥的对称加密算法,而CBC(Cipher Block Chaining,密码块链接模式)是一种使用初始化向量(IV)和前一个块的加密结果来加密当前块的模式。

二、代码的主要组成部分及其功能

  1. 密钥和参数定义:代码开始部分定义了多个全局数组,包括置换表、E盒、P盒、置换表等,这些都是DES算法中的关键部分。

  2. 辅助函数

    • get(int r):根据轮数返回移位数量。
    • yihuo(int* a, int* b, int num):执行两个数组的按位异或操作。
    • fuck(int a[64], int b[64], int n):将数组b的值复制到数组a
    • left_move(int s[28], int s1[28], int n):对数组进行左移操作。
    • exchange(int* a, int* b, int* biao, int n):根据置换表对数组进行置换。
    • erzhuanshi(int* a, unsigned char* b, int n):将二进制数组转换为十六进制表示。
    • shizhuaner(int* a, int x, int i, int n):将十进制数转换为二进制数组。
  3. DES算法核心函数

    • s_box(int a[32], int b[48]):S盒替换函数。
    • DES(unsigned char a[8], unsigned char b[8], unsigned char plus3[8],int n,unsigned char IV[8],unsigned char b1[8]):DES加密函数,其中a是待加密的8字节数据块,b是密钥,plus3是加密结果,n是数据块编号,IV是初始化向量,b1是上一轮的密文。
  4. CBC模式加密函数

    • CBC(unsigned char b[8],unsigned char IV[8]):实现CBC模式的加密过程,读取文件中的明文,使用DES算法进行加密,并将结果写入新文件。
  5. CBC模式解密函数

    • RE_DES(unsigned char a[8], unsigned char min_plus[8],int n,unsigned char IV[8],unsigned char b1[8]):DES解密函数。
    • RE_CBC(unsigned char b[8], int size,unsigned char IV[8]):实现CBC模式的解密过程,读取加密文件,使用DES算法进行解密,并将结果写入新文件。
  6. main函数:程序入口,接收用户输入的密钥和初始向量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

注意安全CL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值