XXTEA Golang
Introduction
xxtea
is a fast and secure encryption algorithm. This project is the Golang implementation of the xxtea
encryption algorithm. Refer to the implementation of the xxtea project of Python. The encryption and decryption results are the same as the xxtea project of Python.
version:
xxtea-go | xxtea-python |
---|---|
v1.0.0 | v1.2.0, v1.3.0, v2.0.0 |
Installation
go get github.com/yang3yen/xxtea-go
Usage
This module provides seven functions: URandom
,Encrypt
,Decrypt
,EncryptBase64
,DecryptBase64
,EncryptHex
,DecryptHex
.
package main
import (
"bytes"
"fmt"
"github.com/yang3yen/xxtea-go/xxtea"
)
func main() {
data := []byte("xxtea-test-case")
key, _ := xxtea.URandom(16)
enc, _ := xxtea.Encrypt(data, key, true, 0)
dec, _ := xxtea.Decrypt(enc, key, true, 0)
if bytes.Equal(data, dec) {
fmt.Println("encrypt success!")
} else {
fmt.Println("encrypt fail!")
}
encHex, _ := xxtea.EncryptHex(data, key, true, 0)
decHex, _ := xxtea.DecryptHex(encHex, key, true, 0)
if bytes.Equal(data, decHex) {
fmt.Println("encrypt hex success!")
} else {
fmt.Println("encrypt hex fail!")
}
encB64, _ := xxtea.EncryptBase64(data, key, true, 0)
decB64, _ := xxtea.DecryptBase64(encB64, key, true, 0)
if bytes.Equal(data, decB64) {
fmt.Println("encrypt base64 success!")
} else {
fmt.Println("encrypt base64 fail!")
}
}