var key = []byte("1234123412ABCDEF")
var iv = []byte("ABCDEF1234123412")
// 加密函数
func EncryptData(data string) string {
block, err := aes.NewCipher(key)
if err != nil {
return ""
}
stream := cipher.NewCTR(block, iv)
ciphertext := make([]byte, len(data))
stream.XORKeyStream(ciphertext, []byte(data))
return base64.URLEncoding.EncodeToString(ciphertext)
}
// 解密函数
func DecryptData(ciphertext string) (string, error) {
block, err := aes.NewCipher(key)
if err != nil {
return "", err
}
stream := cipher.NewCTR(block, iv)
data, err := base64.URLEncoding.DecodeString(ciphertext)
if err != nil {
return "", err
}
plaintext := make([]byte, len(data))
stream.XORKeyStream(plaintext, data)
return string(plaintext), nil
}