newton_miku
文章13
标签19
分类8
PKCS7填充算法

PKCS7填充算法

软件开发过程中经常需要对数据进行加密,常见的加密算法的数据处理方式主要分为两类

  1. 流加密
  2. 块加密

其中块加密算法因对明文以块大小进行分割加密,因此常常需要补齐长度,这里简单记录下一种常用的PKCS7填充算法(以Go语言为例)

import "bytes"

Const(
    BlockSize = 8
)

func Pkcs7Padding(plain []byte){
    // 获取填充大小
    paddingSize := BlockSize - len(plain)%BlockSize
    // 用填充大小作为内容填充到末尾
    padText := bytes.Repeat([]byte(byte(paddingSize)),paddingSize)
    return append(plain,padText...)
}

func Pkcs7Unpadding(source []byte){
    // 获取总长度
    length := len(source)
    // 获取末尾最后一个byte(即填充大小)
    paddingSize := int(source[length-1])
    return source[:length-paddingSize]
}
本文作者:newton_miku
本文链接:http://blog.ddxnb.cn/2025/11/03/PKCS7%E5%A1%AB%E5%85%85%E7%AE%97%E6%B3%95/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
本文阅读量:
×