今天心血来朝,想用go把php中的一个小功能重写一下,但在解密aes加密的数据时碰到了个坑!

php的mcrypt拓展(貌似php7.1版本以上不支持了)提供了aes的加解密:

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


            
AES对称加密算法原理

而且php aes 的秘要长度不仅仅 128 192 256 规定的这三种长度。只要不超过256都行。

所以php的加密秘钥传了个23*8=184。不知道当时的前辈是咋想的!!!

但是到go语言"crypto/aes"包里:

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


            
AES对称加密算法原理

限制了秘钥长度位16 24 32 字节 也就是128 192 256位。所以暂时不能用go的标准库解密了,只能通过其他方式解决了。

 

在网上寻找答案的过程中,我发现java的加密有如下说法。

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


            
AES对称加密算法原理

 如果提前熟知使用规则,就不至于在项目后期出差错。

所以在平时使用到的技术,不光要知其然,也要知其所以然。这样在使用的时候,我们才不会犯下比较低级的错误。

 

 

发现几篇加解密有关的博文,分享给大家:

JAVA破解AES秘钥长度限制

golang使用aes库实现加解密

AES-128\192\256加密算法及其安全脆弱分析

 

谁知道解决golang不限制秘要长度的朋友可以评论下,谢谢!

 

相关文章:

  • 2022-12-23
  • 2022-01-08
  • 2021-06-27
  • 2021-12-19
  • 2021-06-19
  • 2021-12-14
  • 2022-02-21
  • 2022-01-01
猜你喜欢
  • 2022-12-23
  • 2021-12-18
  • 2022-02-06
  • 2021-08-08
  • 2022-12-23
  • 2022-01-15
  • 2022-02-16
相关资源
相似解决方案