我已经编写了以下代码,它试图将字母数字字符加密为 13。这是 go 之旅中的一个示例。我已经使用日志库检查了字节数组 p 中的值,在密码之后,它们似乎旋转了 13。出于某种原因,当它打印到 STDOUT 时,字符没有被加密。我错误地改变了字节数组 p ?package mainimport ( "io" "os" "strings")type rot13Reader struct { r io.Reader}func cipher(in byte) (out byte) { out = in if in > 64 && in < 91 { out = in - 64 out = out + 13 out = out % 26 out = out + 64 } if in > 96 && in < 123 { out = in - 96 out = out + 13 out = out % 26 out = out + 96 } return}func (reader rot13Reader) Read(p []byte) (n int, err error) { for index := range p { p[index] = cipher(p[index]) } n, err = reader.r.Read(p) return}func main() { s := strings.NewReader( "Lbh penpxrq gur pbqr!\n") r := rot13Reader{s} io.Copy(os.Stdout, &r)}
1 回答
- 1 回答
- 0 关注
- 180 浏览
添加回答
举报
0/150
提交
取消