关于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-128\192\256加密算法及其安全脆弱分析
谁知道解决golang不限制秘要长度的朋友可以评论下,谢谢!
关于java php go 中AES加解密秘钥长度问题的更多相关文章
- RSA 加解密 秘钥对说明
rsa非对称加密, 加解密需要不同的秘钥,称作一对. rsa加解密分两种,第一:公钥加密私钥解密.第二:私钥加密公钥解密. 需要注意的是,公加私解得到的密文是变化的,而私加公解的得到的密文是固定的. ...
- Golang中,Aes加解密
今天在用Golang解析php那边用Aes加密的一个key.网上大多是用base64将结果编码一下.而且用到了向量.我php 那边没有用到向量.所以golang这边也是要去掉的.参考网站的改了下.能够 ...
- .Net Core AES加解密
项目中token在传输过程中采用了AES加密, 网上找到的两篇博文都有写问题,在这里记录一下.Net Core 2.2代码中AES加解密的使用: //AES加密 传入,要加密的串和, 解密key p ...
- Java中的AES加解密工具类:AESUtils
本人手写已测试,大家可以参考使用 package com.mirana.frame.utils.encrypt; import com.mirana.frame.constants.SysConsta ...
- C#与java中的AES加解密互解算法
一.C#版AES加解密算法 public class AESCode { public string Key { get; set; } public string Encrypt(string va ...
- C# RSA加解密与验签,AES加解密,以及与JAVA平台的密文加解密
前言: RSA算法是利用公钥与密钥对数据进行加密验证的一种算法.一般是拿私钥对数据进行签名,公钥发给友商,将数据及签名一同发给友商,友商利用公钥对签名进行验证.也可以使用公钥对数据加密,然后用私钥对数 ...
- AES加解密算法在Android中的应用及Android4.2以上版本调用问题
from://http://blog.csdn.net/xinzheng_wang/article/details/9159969 AES加解密算法在Android中的应用及Android4.2以上 ...
- Java、C#双语版配套AES加解密示例
这年头找个正经能用的东西那是真难,网上一搜索一大堆,正经能用的没几个,得,最后还是得靠自己,正巧遇上需要AES加解密的地方了,而且还是Java和C#间的相互加解密操作,这里做个备忘 这里采用的加解 ...
- 转载:Java、C#双语版配套AES加解密示例
转载,原文出处 http://www.cnblogs.com/lzrabbit/p/3639503.html 这年头找个正经能用的东西那是真难,网上一搜索一大堆,正经能用的没几个,得,最后还是得靠自己 ...
随机推荐
- CentOS7.0下安装FTP服务的方法
http://www.jb51.net/article/106604.htm 本篇文章主要介绍了CentOS7.0下安装FTP服务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟 ...
- 2018-3-7-VisualStudio-csproj-添加-ItemGroup-的-Service-
title author date CreateTime categories VisualStudio csproj 添加 ItemGroup 的 Service lindexi 2018-3-7 ...
- java 合并流(SequenceInputStream)
需要两个源文件,还有输出的目标文件 SequenceInputStream: 将两个文件的内容合并成一个文件 该类提供的方法: SequenceInputStream(InputStream s1, ...
- C# 获取 PC 序列号
在 C++ 需要使用 GetSystemFirmwareTable 的方法来获得 PC 的序列号,需要写的代码很多,但是在 C# 可以使用 WMI 来拿到序列号 首先是安装 System.Manage ...
- 【20.95%】【UESTC 94】Bracket Squence
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit Status T ...
- gulp4.0基本配置,超简单!
最近复习了一下gulp,目前是4.0版本. 下图是基本目录结构,文件里面的内容可以随意添加,超详细简洁啊! 直接上代码(依赖未完全使用): 项目的所有依赖都可以安装,每个都有详细的注释. const ...
- Js中没有方法的重载
<script type="text/javascript"> //方法名相同,后面的方法覆盖了前面的方法.后面的方法需要一个name,但没给传值,所以是undefin ...
- C# 使用汇编
本文告诉大家如何在 C# 里面使用汇编代码 请看 C#嵌入x86汇编--一个GPIO接口的实现 - 云+社区 - 腾讯云 C# inline-asm / 嵌入x86汇编 - 苏璃 - CSDN博客 通 ...
- 【35.86%】【POJ 1962】Corporative Network
Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 3943 Accepted: 1414 Description A very bi ...
- Canal常用配置
Canal 是mysql数据库binlog的增量订阅&消费组件. 基于日志增量订阅&消费支持的业务: 数据库镜像 数据库实时备份 多级索引 (卖家和买家各自分库索引) search b ...