~~~
https://studygolang.com/articles/7694
根据这个原贴进行加载
然后只要加密 和解密KEY一样 正常
如果解密的key发生改变后 直接报错 一堆东西
runtime error: slice bounds out of range
goroutine 737 [running]:
经过一个个断点 发现问题出在这个函数
func PKCS5UnPadding(src []byte) []byte {
length := len(src)
unpadding := int(src[length-1])
return src[:(length - unpadding)]
}
~~~
更多评论
<a href="/user/polaris" title="@polaris">@polaris</a> 是否key是 8的倍数 最大256, 一般如果key长度弄256位 最安全 当然解密速度也最慢
#2
<a href="/user/polaris" title="@polaris">@polaris</a>
我尝试这样 解密故意写错KEY 是16位,但依然报错啊。 这样到了生产的时候 也不是办法啊, 程序异常中止了
难道我哪里不对
~~~
ret333, err := encryption2.AesEncrypt("test_string", "12345678")
if err != nil {
fmt.Fprintln(w, err)
} else {
fmt.Fprintln(w, ret333)
}
ret444, err := encryption2.AesDecrypt(ret333, "1234567812345678")
if err != nil {
fmt.Fprintln(w, err)
} else {
fmt.Fprintln(w, ret444)
}
~~~
#3