关于填充的反向操作,删除填充字符串

来源:10-4 登陆代码改造(2)

Clown08

2019-10-24

//填充的反向操作,删除填充字符串
func PKCS7UnPadding(origData []byte) ([]byte, error) {
//获取数据长度
length := len(origData)
if length == 0 {
return nil, errors.New(“加密字符串错误!”)
} else {
//获取填充字符串长度
unpadding := int(origData[length-1])
//截取切片,删除填充字节,并且返回明文
return origData[:(length - unpadding)], nil
}
}

这个函数里面的int(origData[length-1])怎么理解,我知道origData是已经填充完的byte,这个代码是如何获取到填充字符的长度的?????

写回答

1回答

Cap

2019-10-29

这个要联系 PKCS7Padding 来理解,在PKCS7Padding 里面有个补全操作。

0
2
Clown08
填充的数就是缺少的需要填充的字符个数,int(origData[length-1])可以从[]byte数组里取最后一位填充的byte字符,同时也是所填充的字符个数。老师您看这样理解对不对
2019-10-29
共2条回复

全流程开发 GO实战电商网站高并发秒杀系统

运用架构设计与系统化思维,从容应对不同流量等级的“秒杀”场景

1462 学习 · 443 问题

查看课程