Go语言实现三重DES加密算法(CBC模式)
由于DES已经可以被暴力破解了,三重DES就是为了增加DES的强度,实现原理就是将DES重复三次,通常缩写为3DES。3DES的密钥长度为8byte*3=24byte。
3DES的加密机制为:加密->解密->加密
3DES的解密机制为:解密->加密->解密
CBC模式(密码分组链接模式)是常用的一种分组密码的模式。(点击查看分组密码及CBC模式概述)
实现代码如下:
import (
"bytes"
"crypto/des"
"crypto/cipher"
"fmt"
)
//对明文进行填充
func Padding(plainText []byte,blockSize int) []byte{
//计算要填充的长度
n:= blockSize-len(plainText)%blockSize
//对原来的明文填充n个n
temp:=bytes.Repeat([]byte{
byte(n)},n)
plainText=append(plainText,temp...)
return plainText
}
//对密文删除填充
func