Java/Flex使用相同密钥加密相同的信息,生成密文不同的解决方法
来源:互联网 发布:新田源码 编辑:程序博客网 时间:2024/05/17 03:03
现在开发的这个系统,用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 )
- vc listctrl里相同的列不同行显示不同图标
- Tomcat中配置mysql数据源
- UVA 10652 Board Wrapping
- 继承
- (转)十年经验教你如何学习嵌入式系统(基于ARM平台)
- Java/Flex使用相同密钥加密相同的信息,生成密文不同的解决方法
- 图像预览
- 相信自己,相信未来
- 串口流控制(flow control)
- iPhone5将于2011年9月7号发行
- Ubuntu安装crosstool These critical programs are missing or too old: as ld错误
- VS2010 C++ Debug 出现错误“Cannot find or open the PDB file”
- 主从表配置
- 我在北京工作这几年 – 一个软件工程师的反省