为了账号安全,请及时绑定邮箱和手机立即绑定

Go io 阅读器包装器

Go io 阅读器包装器

Go
慕森卡 2021-07-07 17:00:59
我已经编写了以下代码,它试图将字母数字字符加密为 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
提交
取消
意见反馈 帮助中心 APP下载
官方微信