golang-module / dongle

A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption
https://pkg.go.dev/github.com/golang-module/dongle
MIT License
875 stars 67 forks source link

增加参数校验 #1

Closed sh7ning closed 2 years ago

sh7ning commented 2 years ago

Feature Request

AES 加解密的时候,key的长度是有要求的,不然随便一个key可能会有问题,加解密出的结果不对应,可以考虑增加参数校验或则增加错误输出,不然使用者无感知得到一个错误的结果(空字符串)

另外,文档readme中对AES解密的demo是有问题的,应该是 dongle.Decrypt.FromString 而不是 dongle.Encrypt.FromString

gouguoyin commented 2 years ago

感谢你的反馈,欢迎一块完善

gouguoyin commented 2 years ago

image 这里已经对key进行了校验,判断Error是否为nil即可

sh7ning commented 2 years ago

如果是参考readme的链式调用到最后的ToString就感知不到错误

加上encrypt不是指针,所以调用的时候要写的很严谨才行,比如下边这样调用也不能获取到错误

e := dongle.Encrypt
e.FromString(text).ByAes(cipher)
if e.Error != nil {
        return "", e.Error
}
return e.ToString(), nil

下边这样才能感知到错误

e := dongle.Encrypt.FromString(text).ByAes(cipher)
if e.Error != nil {
        return "", e.Error
}
return e.ToString(), nil

不过问题不大,我已经能按照你上边说的用法处理了错误了,谢谢。