go语言数字信封解密

时间2023-03-18 16:19:34 提问来自 Central and Western DistrictCentral 的网友 分类ChatGPT提问 浏览147 热度0
package main import ( "crypto/aes" "crypto/cipher" "encoding/base64" "fmt" ) //解密函数,传入参数为加密后的字符串和秘钥 func Decrypt(crypted string, key string) string { //将秘钥转换成字节流 k := []byte(key) //将加密过的字符串用base64进行解码 cryptedByte, _ := base64.StdEncoding.DecodeString(crypted) //创建一个新的AES接口,用于实例化一个AES加密器。AES-128使用16字节长度的密钥,而AES-256使用32字节长度的密钥。此处使用AES-128。 block, err := aes.NewCipher(k) if err != nil { panic(err) } //初始化一个切片,大小是块大小的2倍 iv := make([]byte, block.BlockSize()*2) if _, err := io.ReadFull(rand.Reader, iv); err != nil { panic(err) } mode := cipher.NewCBCDecrypter(block, iv[:block.BlockSize()]) mode.CryptBlocks(cryptedByte, cryptedByte) return fmt.Sprintf("%s", cryptedByte[:]) } func main() { fmt.Println("Go语言数字信封解密") fmt.Println("明文是:", Decrypt("EK9X6LhU7VZUjw3q6VF+NQ==", "1234567890123456"))}

AI智能问答网免责声明:
以上内容除特别注明外均来源于网友提问、ChatGPT回答,权益归原著者所有,本站仅作效果演示和欣赏之用;
若以上展示有冒犯或侵害到您,敬请联系我们进行删除处理,谢谢!

上一篇 私人影吧装修设计图(9张) 下一篇 帮我写一篇关于最难忘的事的作文要求不少于