# package rc4

`import "crypto/rc4"`

rc4包实现了RC4加密算法，参见Bruce Schneier's Applied Cryptography。

## type KeySizeError

    type KeySizeError int

### func (KeySizeError) Error

    func (k KeySizeError) Error() string

## type Cipher

    type Cipher struct {
        // 内含隐藏或非导出字段
    }

Cipher是一个使用特定密钥的RC4实例，本类型实现了cipher.Stream接口。

### func NewCipher

    func NewCipher(key []byte) (*Cipher, error)

NewCipher创建并返回一个新的Cipher。参数key是RC4密钥，至少1字节，最多256字节。

### func (*Cipher) Reset

    func (c *Cipher) Reset()

Reset方法会清空密钥数据，以便将其数据从程序内存中清除（以免被破解）

### func (*Cipher) XORKeyStream

    func (c *Cipher) XORKeyStream(dst, src []byte)

XORKeyStream方法将src的数据与秘钥生成的伪随机位流取XOR并写入dst。dst和src可指向同一内存地址；但如果指向不同则其底层内存不可重叠。

## Bugs

☞ RC4被广泛使用，但设计上的缺陷使它很少用于较新的协议中。