golang rc4 结果不正确.
package main import ( "crypto/rc4" "fmt" ) func main() { rc, err := rc4.NewCipher([]byte("5813aecc-0d05-497e-aafa-3111610cf44c")) if err != nil { panic(err) } src := []byte("hello world") fmt.Println(src) rc.XORKeyStream(src, src) fmt.Println(src) rc.XORKeyStream(src, src) fmt.Println(src) }
输出:
[104 101 108 108 111 32 119 111 114 108 100] [216 36 143 56 20 50 169 207 31 252 154] [0 32 70 107 105 65 236 28 246 248 21]
看了下NewCipher:
XORKeyStream:
这里并不是简单的异或运算,所以执行两次以后不会有xor运算的性质