package tscipher import () type XOR struct { key []byte } func (this *XOR) Decrypt(data []byte) (decrypted []byte, err error) { decrypted = make([]byte, len(data)) for i := 0; i < len(data); i++ { decrypted[i] = data[len(data)-i-1] ^ this.key[i%len(this.key)] // decrypted[i] = data[i] } err = nil return } func (this *XOR) Encrypt(data []byte) (encryped []byte, err error) { encryped = make([]byte, len(data)) for i := 0; i < len(data); i++ { encryped[len(data)-i-1] = data[i] ^ this.key[i%len(this.key)] // encryped[i] = data[i] } err = nil return } func NewXOR(key []byte) (cipher Cipher) { return &XOR{ key: key, } }