我有一个加密服务(.Net Class Lib)现在我必须将它移植到java,只要加密和解密两个服务都服务正常但问题是我必须保存加密值java服务生成的数据库和加密值必须与.Net类lib生成的值匹配。
现在,如果我加密一个值android
,则两个服务都会生成不同的加密值。有什么可行的解决方法或寻找的东西......
答案 0 :(得分:2)
加密系统通常具有以下参数:
系统可以使用任何语言和任何平台开发,如果这三个方面相同,那么任何实现的输出都是相同的。像平台字节序这样的东西并不重要,因为算法应该使用字节作为基本单元。
Ergo,如果您为同一输入获得不同的输出,那么这些事情中的一个或多个是错误的:)
如果您已经开发了自己的加密系统(例如自己实施3DES),那么这可能就是您的错误所在。 Always leave the implementation of cryptosystems to academic professionals
我假设您正确设置了密钥和IV,这就离开了密码块模式 - 这是最合理的解释,因为不同的平台都有自己的默认值。
但是,如果您已经验证所有这些内容在.NET和Java实现中都是相同的,那么您应该重新发布您的问题,但需要提供更多详细信息,包括相关的源代码。
答案 1 :(得分:1)