分组加密模式

分组加密模式

常见模式

ECB模式

ecb

CBC模式

cbc

CFB模式

cfb

OFB模式

ofb

CTR模式

ctr

XTS模式

α与结果模乘

img

分组加密填充方式

共有pkcs5/pkcs7/ISO10126填充/ANSIX923填充/Zeros填充

pkcs5 是pkcs7的子集,专门用于填充8字节的或者8的倍数,pkcs7可以填充字节为多个字节

pkcs7

比如字节长度为10:

例子1、如果当前的数据为8,那么需要填充2个字节,填充字节为0x02,0x02,

例子2、如果当前数据为3,那么需要填充7个字节,填充的字节为0x07,0x07,0x07,0x07,0x07,0x07,0x07

例子3、如果当前数据为10,那么再填充10个字节,填充字节为

0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A

解析的时候,就是判断后续是否有连续一样的值,并且值和长度相等。

pkcs5

只是限制了长度,如果为8或者16,和pkcs7一样。

ISO10126

最后一位标识补位位数n,之前补位n-1个随机值

比如说字节长度为10:

例子1:当前长度为7,那么需要填充3个字节,最后一个字节为0x03,前面两个是随机数,如下填充:0x01,0xff, 0x03

ANSIX923

填充最后一个字节为长度,其余的为0

比如说字节长度为10:

例子1:当前数据为4,需要填充6个字节,那么最后一个字节为0x06,其余5个字节为0,填充如下:

0x00,0x00,0x00,0x00,0x00,0x06

zeros填充

不够用0填充

比如说字节长度为10:

例子1:当前长度为6,那么需要填充4个字节,填充字节为0x00:

0x00,0x00,0x00,0x00

posted @ 2026-07-14 16:52  lazybreak  阅读(2)  评论(0)    收藏  举报