博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AES分组加密简介
阅读量:7052 次
发布时间:2019-06-28

本文共 1077 字,大约阅读时间需要 3 分钟。

AES分组加密简介

1、首先应该明白AES是基于数据块的加密方式,也就是说,每次处理的数据是一块(16字节),当数据不是16字节的倍数时填充,这就是所谓的分组密码(区别于基于比特位的流密码),16字节是分组长度。

2、分组加密的几种方式

ECB:是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。

CBC:是一种循环模式,前一个分组的密文和当前分组的明文异或操作后再加密,这样做的目的是增强破解难度。

CFB/OFB实际上是一种反馈模式,目的也是增强破解的难度。

ECBCBC的加密结果是不一样的,两者的模式不同,而且CBC会在第一个密码块运算时加入一个初始化向量。

3、两个api

void AES_ecb_encrypt(const unsigned char *in, unsigned char *out,    const AES_KEY *key, const int enc);

AES加密/解密单个数据块,ECB模式

in: 需要加密/解密的数据;

out: 计算后输出的数据;

key:密钥

enc: AES_ENCRYPT 代表加密, AES_DECRYPT代表解密;

void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,   size_t length, const AES_KEY *key,    unsigned char *ivec, const int enc);

AES加密/解密单个数据块,CBC模式

in: 需要加密/解密的数据;

out: 计算后输出的数据;

length: 数据长度

key:密钥

ivec: 初始向量

enc: AES_ENCRYPT 代表加密, AES_DECRYPT代表解密;

原文

http://bbs.csdn.net/topics/330033279

OpenSSL 之 Command & API

http://hi.baidu.com/orxor/item/e0b4bc69774a4b0da0cf0f2b

http://bbs.csdn.net/topics/390448993

Openssl AES 总结函数的参数含义

http://blog.csdn.net/sunspider107/article/details/7375816

https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation

你可能感兴趣的文章
***实用函数:PHP explode()函数用法、切分字符串,作用,将字符串打散成数组
查看>>
JQuery属性与样式——.html()和.text()
查看>>
游戏中的碰撞检测
查看>>
python 回溯法 子集树模板 系列 —— 2、迷宫问题
查看>>
1455: C语言实验题――数字串求和
查看>>
halcon学习笔记——(12)图像分割
查看>>
Html 文档模式
查看>>
MongoDB 文档的删除操作
查看>>
写给刚入门的前端工程师的前后端交互指南
查看>>
又订阅了万维刚的精英日课
查看>>
代码段、数据段、堆栈段、数据段
查看>>
NandFlash详述【转】
查看>>
Windows Builder(图形化界面的利器)For Eclipse 3.7
查看>>
每天要喝多少水
查看>>
request_mem_region 与 ioremap【转】
查看>>
指令级, ns级优化实例, 怎么做到调无可调
查看>>
Autodesk 2011系列新产品DevDay将于12月在北京/上海举行
查看>>
创建Visual studio项目模板 vstemplate关键点纪要
查看>>
SQL Server连接中三个常见的错误分析
查看>>
socket通信,server与多客户端通信
查看>>