今天心血来朝,想用go把php中的一个小功能重写一下,但在解密aes加密的数据时碰到了个坑!
php的mcrypt拓展(貌似php7.1版本以上不支持了)提供了aes的加解密:
而且php aes 的秘要长度不仅仅 128 192 256 规定的这三种长度。只要不超过256都行。
所以php的加密秘钥传了个23*8=184。不知道当时的前辈是咋想的!!!
但是到go语言"crypto/aes"包里:
限制了秘钥长度位16 24 32 字节 也就是128 192 256位。所以暂时不能用go的标准库解密了,只能通过其他方式解决了。
在网上寻找答案的过程中,我发现java的加密有如下说法。
如果提前熟知使用规则,就不至于在项目后期出差错。
所以在平时使用到的技术,不光要知其然,也要知其所以然。这样在使用的时候,我们才不会犯下比较低级的错误。
发现几篇加解密有关的博文,分享给大家:
AES对称加密算法原理
JAVA破解AES秘钥长度限制
golang使用aes库实现加解密
AES-128192256加密算法及其安全脆弱分析
谁知道解决golang不限制秘要长度的朋友可以评论下,谢谢!