文档章节

基于C++的分组密码加解密实现

T
 TTHFcd66
发布于 2019/08/14 17:17
字数 288
阅读 88
收藏 0

// S 盒置换

BlockType SBox_Encode(BlockType x);

// S 盒逆变换

BlockType SBox_Decode(BlockType x); 

// P 盒置换

BlockType PBox_Encode(BlockType x); 

// P 盒逆变换

BlockType PBox_Decode(BlockType x); 

// 输出显示一个 16 位二进制数

void OutPut_Bin(BlockType p);

// 输出显示一个密钥

void OutPut_Key(KeyType key);

// 分组加密函数

void BlockEncryption(BlockType PlainText, BlockType

&CipherText, KeyType Key);

// 分组解密函数

void BlockDecryption(BlockType &PlainText, BlockType

CipherText, KeyType Key);

// 生成指定密钥

void Key_Engine();

// 随机生成密钥

void Key_Random();

// 文件加密

int FileEncryption(char *PlainFile,char *CipherFile,KeyType Key);

// 文件解密

int FileDecryption(char *PlainFile,char *CipherFile,KeyType Key);

// 加密函数的运行速度

unsigned long EncryptionTime(unsigned long Times);

// 线性密码分析

BlockType LinearCryptanalysis(unsigned long T,BlockType Text[][2]);

// 差分密码分析

BlockType DiffCryptanalysis(unsigned long T,BlockType Text[][4]);

// 测试分组加密与解密

void TestBlockEncrypt();

// 测试文件加密与解密

void TestFileEncrypt();

// 测试运行速度

void TestEncryptionTime();

// 测试线性密码分析

void TestLinearCryptanalysis();

// 测试差分密码分析

void TestDiffCryptanalysis();

// 测试线性分析函数成功时明密文对数

void TestLinearSucceedTimes();

// 测试差分分析函数成功时明密文对数

void TestDiffSucceedTimes();

// 暂停,按回车键继续

void Wait();

点击下载源码

© 著作权归作者所有

T
粉丝 0
博文 647
码字总数 283039
作品 0
沈阳
私信 提问
加载中

评论(0)

Linux下ELF文件的加壳

【业务需求】 1.用c或者c++ 编写一个程序 实现elf文件的加密生成一个新的elf文件,为加壳的elf,加密算法用c,c++自带的AES加密。 2.用c或者c++ 写解密算法,实现对加壳过的elf进行解密。 3....

林志滨
2017/11/20
324
2
有没有php和c++相互加解密的demo代码?

有没有php和c++相互加解密的demo? 有没有php和c++相互加解密的demo? 有没有php和c++相互加解密的demo?

亦可塞艇
2017/10/16
225
1
讲讲网络模块里加解密那点儿事--AES+BASE64

这次想来讲讲网络安全通信这一块,也就是网络层封装的那一套加密、解密,编码、解码的规则,不会很深入,但会大概将这一整块的讲一讲。 之所以想写这篇,是因为,最近被抽过去帮忙做一个 C+...

请叫我dasu
2018/08/06
0
0
讲讲网络模块中加解密那点儿事--AES+BASE64

这次想来讲讲网络安全通信这一块,也就是网络层封装的那一套加密、解密,编码、解码的规则,不会很深入,但会大概将这一整块的讲一讲。 之所以想写这篇,是因为,最近被抽过去帮忙做一个 C+...

请叫我大苏
2018/08/04
0
0
java与C++通过des、blowfish互相加解密

在简单的服务器端与客户端通信的应用中,这种做法比较常见 DES、blowfish扫盲: 1.des的常见模式分为四种 ECB / CBC / CFB / OFB 这里使用默认的ECB ECB的缺陷:能从密文看出明文的规律 加密...

sumekey
2011/11/05
1.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

django

aiodns 1.1.1aiohttp 3.6.1asn1crypto 0.24.0async-timeout 3.0.1attrs 19......

MtrS
14分钟前
29
0
SQL查询单表数据(一)

本节讲述 基本的 select 查询单表数据语句 1 从单表中查询所有的行和列 查询表中所有的数据 select * from t_user 在 SQL 中,字符 "*" 具有特殊的含义,使用用它,将从指定的表中返回每一列...

赵子龙
21分钟前
31
0
签名与无符号整数

我是否正确地说有符号和无符号整数之间的区别是: 无符号可以保持较大的正值,而不是负值。 无符号使用前导位作为值的一部分,而带符号版本使用最左侧位来标识数字是正数还是负数。 有符号整...

javail
26分钟前
49
0
【Vue_05】前端工程化

一、ES6的模块化 1. ES6模块化规范 每个 js 文件都是一个独立的模块 导入模块成员使用 import 关键字 暴露模块成员使用 export 关键字 2. 基本语法 发使用 export default { }导出默认成员 ...

Demo_Null
28分钟前
33
0
阿里P7高级架构师分享6年多的Java工作经验(想冲破瓶颈者必看)

很多工作了五年左右的程序员每天已经习惯了机器般的写代码,如果是这样那么你永远只会是个基础程序员,因为你不能只会用,你要知道原理,不至于让你自己实现一个出来,但是基本原理要知道。 ...

JAVA一方
39分钟前
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部