代码拉取完成,页面将自动刷新
/**
* cbc模式.
*
* User: zhangbob
* Date: 2018/7/5
* Time: 下午2:14
*/
package des
import (
"crypto/des"
"crypto/cipher"
"encoding/base64"
)
//CBC加密
func EncryptToCBC(src, key string) (string, error) {
data := []byte(src)
keyByte := []byte(key)
block, err := des.NewCipher(keyByte)
if err != nil {
return "", err
}
data = PKCS5Padding(data, block.BlockSize())
//data = ZeroPadding(data, block.BlockSize())
blockMode := cipher.NewCBCEncrypter(block, keyByte)
crypted := make([]byte, len(data))
// 根据CryptBlocks方法的说明,如下方式初始化crypted也可以
blockMode.CryptBlocks(crypted, data)
return base64.StdEncoding.EncodeToString(crypted), nil
}
func DecryptToCBC(encodeString string, key []byte) (string, error) {
block, err := des.NewCipher(key)
if err != nil {
return "", err
}
//base64解密
crypted, err := base64.StdEncoding.DecodeString(encodeString)
blockMode := cipher.NewCBCDecrypter(block, key)
origData := crypted
blockMode.CryptBlocks(origData, crypted)
origData = PKCS5UnPadding(origData)
return string(origData), nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。