Java/Flex使用相同密钥加密相同的信息,生成密文不同的解决方法
来源:互联网 发布:人工智能对世界的影响 编辑:程序博客网 时间:2024/05/16 18:53
现在开发的这个系统,用Java构建服务端,Flex构建客户端。这就存在一个问题,即数据传输的安全性,尤其对于敏感的用户名、密码等数据。所以在重要数据传输之前,进行加密。我们采用AES加密算法,服务端和客户端使用相同的密钥进行加密和解密。
本来一切顺利,结果,在调试加密解密数据时出现了问题。使用Java和Flex分别开发服务器端和客户端的数据加/解密程序时,发现使用相同的密钥加密相同的数据,Java程序生成的密文与Flex程序生成的密文不同。这让我非常困惑,按说算法相同得出的结果就应该相同。是哪里出了问题呢?网上查找关于Java/Flex之间加密解密的信息,资料不多,相关的信息更是没有。在无计可施之时,一个偶然的信息给了我一个提示,说是Java加密与IOS开发中相同的算法对密钥数据的格式是不同的。那么会不会Java跟Flex也是类似的问题呢?经过试验,终于发现,Java加密使用字符串密钥,在Flex中需要转换成16进制数,作为密钥。
例如:Java密钥是adkei12D4kf5DKou,那么转换成Flex使用的密钥值是,将该字符串转换成字节数组,然后每一个字节的8位分为高4位和低4位,分别转换成一个16进制数。这样组成的字符串作为Flex端使用的密钥,即61646b6569313244346b6635444b6f75。
- Java/Flex使用相同密钥加密相同的信息,生成密文不同的解决方法
- Java/Flex使用相同密钥加密相同的信息,生成密文不同的解决方法
- EXCEL 相同日期所在的不同单元格使用相同颜色
- tensorflow不同位置使用相同的name_scope
- Java与CSharp的相同与不同
- 多个电脑之间使用相同的ssh密钥
- 不同区域控制器名称相同出错的解决方法(备忘)
- 64位Linux使用yum安装两个相同软件不同版本包的解决方法
- 如何使用Android Studio用相同的代码工程生成不同的APP
- [加密]JAVA与.NET加密结果相同的MD5算法
- Java md5加密 控制台传入与web传入参数 结果不匹配 || 相同字符串加密结果不同,如何保证JAVA MD5加密结果在不同的环境下都相同
- 如何使用不同dll的相同namespace下的相同接口
- 生成互不相同的随机数
- 生成不相同的随机数
- 生成六位不相同的密码
- DES中两个不同密钥加密同一明文得出相同结果
- EntityConnection ConnectionString (不同model使用相同的连接字符串)
- Javascript与java相同的3des加密(使用etdesede/CBC/PKCS5Padding )
- 你见过ORDER BY -title DESC这种用法吗?
- jQuery的优势
- Tomcat中实现IP访问限制
- 你用过哪些操作系统?
- 在VS C++中调试DLL工程的方法
- Java/Flex使用相同密钥加密相同的信息,生成密文不同的解决方法
- mvc linq多表查询 viewModel
- VMware9无法将外部文件拖入虚拟机中
- 人人校招笔试题
- 今天看见了一个小项目,关于ftp编程
- LeetCode: Remove Duplicates from Sorted Array
- Cocos2dx 2.1.5 (2.1.4) 离线 API 手册
- Linux 下安装配置 JDK7
- Cocos2dx 2.1.5 (2.2.0) 离线 API 手册