文档章节

AES Padding

lionets
 lionets
发布于 2017/07/25 16:51
字数 355
阅读 93
收藏 0

AES 作为块加密算法(block cipher),要求被加密数据具有固定的大小,比如16 字节。那么对于一段任意大小的明文,对最后一个块补全到 16 字节就是一个必要的过程。以及在解密时将 padding 字节删除。

那么这里的关键问题便是如何设计这个 padding 方法,使解密后能够只通过明文便可以精准的切掉小尾巴。

容易发现,任何魔法字节都是不可靠的,即 pad 自身必须包含明确的描述 pad 长度的信息。出于同样的考虑,即使原始信息正好膜 16 余 0,pad 也是需要加的,这种情况可以加一个长度 16 的 pad。那么因为 pad 长度最高 16,最小 1,使用一个字节完全可以描述,那么我们可以约定:

每段明文在加密前都会添加一个 1-16 字节的 pad,使总长度膜 16 余 0。
pad 的长度由 pad 的最后一个字节描述

这样就生成了一个可靠的 padding 方法,其实也就是: PKCS7。<-- 这什么破渲染器

不过 PKCS7 在此之上还加了一层改进:就是明确要求 pad 的每个字节都是 pad 长度。这样解密后的明文更加易读。也可以做额外的判断,如果你想的话。

© 著作权归作者所有

共有 人打赏支持
lionets
粉丝 91
博文 98
码字总数 132850
作品 0
朝阳
程序员
java web与android互通的aes算法

Java实现代码 AES加密模式和填充方式 | 算法/模式/填充 | 16字节加密后数据长度 | 不满16字节加密后长度 || ------------- |:-------------:|:-----:||AES/CBC/NoPadding|16| 不支持||AES/C...

天蓝1122
2015/12/02
137
0
AES加密解密

// // main.m // AES加密 // // Created by dc008 on 16/1/5. // Copyright © 2016年 lin. All rights reserved. // // AES和MD5相对比base64安全性更高 #import <Foundation/Foundation.h......

温暖c
2016/01/05
24
0
IOS支持AES算法 PKCS5Padding 的填充方式吗?

我知道安卓端与服务器端的通信方式AES加密方式支持PKCS5Padding,ios支持 PKCS5Padding吗? 我看官方文档上面只支持 PKCS7Padding ,大家有没有用过ios端 PKCS5Padding的AES加密方式吗? 如果...

Java_Coder
2014/12/14
364
0
自己写的AES加密工具类的加密结果为什么与在线AES加密网站的加密结果不一致?

我写了一个AES加密工具类,对明文进行AES加密,相关参数如下: 加密算法:AES 明文:A 算法模式:CBC 密钥长度:256 密钥:1qaz@WSX1qaz@WSX 密钥偏移量:1234567890123456 补码方式:PKCS7...

摩卡王伟
2013/06/24
3.5K
1

没有更多内容

加载失败,请刷新页面

加载更多

Java日期和时间获取问题

获取年月日时分秒 Calendar cal = Calendar.getInstance();//获取年int year = cal.get(Calendar.YEAR);//获取月,范围是0-11,最后使用需+1int month = cal.get(Cal...

lanyu96
32分钟前
9
0
Ceph学习笔记2-在Kolla-Ansible中使用Ceph后端存储

环境说明 使用Kolla-Ansible请参考《使用Kolla-Ansible在CentOS 7单节点上部署OpenStack Pike》; 部署Ceph服务请参考《Ceph学习笔记1-Mimic版本多节点部署》。 配置Ceph 以osdev用户登录: ...

LastRitter
36分钟前
8
0
OSChina 周二乱弹 —— 老司机表示右手无处安放

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @花间小酌 :分享李宗盛的单曲《鬼迷心窍》--春风再美也比不上你的笑 《鬼迷心窍》 - 李宗盛 手机党少年们想听歌,请使劲儿戳(这里) 每天早...

小小编辑
47分钟前
314
5
复习2

10月22日任务 awk 中使用外部shell变量 awk 合并一个文件 把一个文件多行连接成一行 awk中gsub函数的使用 awk 截取指定多个域为一行 过滤两个或多个关键词 用awk生成以下结构文件 awk用print...

hhpuppy
55分钟前
5
0
原型模式

1、原型模式-定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 克隆(浅度克隆->拷贝值类型或者引用,深度克隆->创建新的对象,开辟新的内存) 例如客户端知道抽象Pro...

阿元
今天
63
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部