将加密服务从.Net移植到Java

时间:2012-12-10 07:50:51

标签: java .net encryption

我有一个加密服务(.Net Class Lib)现在我必须将它移植到java,只要加密和解密两个服务都服务正常但问题是我必须保存加密值java服务生成的数据库和加密值必须与.Net类lib生成的值匹配。

现在,如果我加密一个值android,则两个服务都会生成不同的加密值。有什么可行的解决方法或寻找的东西......

2 个答案:

答案 0 :(得分:2)

加密系统通常具有以下参数:

系统可以使用任何语言和任何平台开发,如果这三个方面相同,那么任何实现的输出都是相同的。像平台字节序这样的东西并不重要,因为算法应该使用字节作为基本单元。

Ergo,如果您为同一输入获得不同的输出,那么这些事情中的一个或多个是错误的:)

如果您已经开发了自己的加密系统(例如自己实施3DES),那么这可能就是您的错误所在。 Always leave the implementation of cryptosystems to academic professionals

我假设您正确设置了密钥和IV,这就离开了密码块模式 - 这是最合理的解释,因为不同的平台都有自己的默认值。

但是,如果您已经验证所有这些内容在.NET和Java实现中都是相同的,那么您应该重新发布您的问题,但需要提供更多详细信息,包括相关的源代码。

答案 1 :(得分:1)

我做了同样的事情 - 从Java到C#。查看开源项目中的现有代码可能会有所帮助。

  • LockCrypt是我写的一个例子
  • Keepass包含所有主要语言的端口,因此您可以比较每种实现加密的方式