golang:AES加密解密
Posted IGuoSJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang:AES加密解密相关的知识,希望对你有一定的参考价值。
golang:AES加密解密代码示例:
package main
import (
"bytes"
"crypto/aes"
"crypto/cipher"
"fmt"
)
func padding(src []byte, blocksize int) []byte
padnum := blocksize - len(src)%blocksize
pad := bytes.Repeat([]bytebyte(padnum), padnum)
return append(src, pad...)
func unPadding(src []byte) []byte
n := len(src)
unPadNum := int(src[n-1])
if unPadNum > n
return nil
return src[:n-unPadNum]
func EncryptAES(src []byte, key []byte) []byte
block, err := aes.NewCipher(key)
if err != nil
return nil
src = padding(src, block.BlockSize())
blockMode := cipher.NewCBCEncrypter(block, key)
blockMode.CryptBlocks(src, src)
return src
func DecryptAES(src []byte, key []byte) []byte
block, err := aes.NewCipher(key)
if err != nil
return nil
blockMode := cipher.NewCBCDecrypter(block, key)
blockMode.CryptBlocks(src, src)
src = unPadding(src)
return src
func main()
raw := []byte("guoshuaijie")
key := []byte("huyanyan87654321")
//key2:=[]byte("guoshuai87654321")
encryptByte := EncryptAES(raw, key)
if encryptByte != nil
decryptByte := DecryptAES(encryptByte, key)
if decryptByte != nil
fmt.Println(string(decryptByte))
输出结果:
guoshuaijie
以上是关于golang:AES加密解密的主要内容,如果未能解决你的问题,请参考以下文章
golang GoLang使用AES加密将字符串加密到base64,反之亦然。
golang GoLang使用AES加密将字符串加密到base64,反之亦然。
golang GoLang使用AES加密将字符串加密到base64,反之亦然。
golang 在golang中使用AES256 GCM加密文本