crypto-js前端库和后端进行交互,debug非常困难: javascript crypto-js 中的 string -> []byte string -> 转hex string-> base64 string -> base64-url-encoding 没有golang 直观明了. 所以这里遗留了很多坑.
go语言中文文档:www.topgoer.com
转自:https://mojotv.cn/go/crypto-js-with-golang
2.前端Javascript AES对称加密代码npm install crypto-js
其他的加密方式大同小异,只需要注意padding,补位,编码(hex,base64,base64-url)
3.Go语言AES对称解密其他的加密方式大同小异,只需要注意padding,补位,编码(hex,base64,base64-url)
3.1 不要遗忘 hex.DecodeStringtest case
4. 结论
crypto-js的加密解密,如果在javascript/node 比较好使用, 如果出现了不同语言中传输则需要注意,一些问题.
url参数传输会被转译,建议使用base64-url-encoding 或 hex-encoding
key 字符串建议使用 hex string (0~9,a-f)
注意js string 和 golang string/[]byte/[]rune 之间转换的坑