关于java php go 中AES加解密秘钥长度问题

今天心血来朝,想用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不限制秘要长度的朋友可以评论下,谢谢!

原文地址:https://www.cnblogs.com/kala00k/p/11069712.html