Golang📌应用📌加密算法📌1-rc4.txt
"crypto/rc4"包实现了RC4加密算法。
RC4被广泛使用,但设计上的缺陷使它很少用于较新的协议中。 

========== ========== ========== ========== ==========

package crypt

import (
	"crypto/rc4"
	"encoding/base64"
)

// RC4 key, at least 1 byte and at most 256 bytes.

func RC4Encrypt(key, src []byte) (string, error) {
	c, err := rc4.NewCipher(key)
	if err != nil {
		return "", err
	}
	dst := make([]byte, len(src))
	c.XORKeyStream(dst, src)
	return base64.StdEncoding.EncodeToString(dst), nil
}

func RC4Decrypt(key []byte, s string) ([]byte, error) {
	src, err := base64.StdEncoding.DecodeString(s)
	if err != nil {
		return nil, err
	}
	c, err := rc4.NewCipher(key)
	if err != nil {
		return nil, err
	}
	dst := make([]byte, len(src))
	c.XORKeyStream(dst, src)
	return dst, nil
}