版署实名认证加密方法(golang)
func aes128GCM(aesKey string, plainText []byte) (cipherText string, err error) {
key, err := hex.DecodeString(aesKey)
if err != nil {
return
}
block, err := aes.NewCipher(key)
if err != nil {
return
}
gcm, err := cipher.NewGCM(block)
if err != nil {
return
}
nonce := make([]byte, gcm.NonceSize())
io.ReadFull(rand.Reader, nonce)
ciphertext_byts := gcm.Seal(nil, nonce, plainText, nil)
full_byts := append(nonce, ciphertext_byts...)
cipherText = base64.StdEncoding.EncodeToString(full_byts)
return
}