我有一个加密服务(.Net Class Lib)现在我必须将它移植到java,就加密和解密而言,这两个服务都可以正常工作,但问题是我必须将加密值保存在数据库中并且java 服务生成的加密值必须与 .Net 类库生成的值匹配。
现在,如果我加密一个值,则说android
这两个服务都会生成不同的加密值。有什么可能的解决方法或要寻找的东西...
我有一个加密服务(.Net Class Lib)现在我必须将它移植到java,就加密和解密而言,这两个服务都可以正常工作,但问题是我必须将加密值保存在数据库中并且java 服务生成的加密值必须与 .Net 类库生成的值匹配。
现在,如果我加密一个值,则说android
这两个服务都会生成不同的加密值。有什么可能的解决方法或要寻找的东西...
加密系统通常具有以下参数:
可以使用任何语言和在任何平台上开发系统,并且只要这三件事相同,那么任何实现的输出都是相同的。像平台字节序这样的事情并不重要,因为算法应该使用字节作为基本单位。
因此,如果您为相同的输入获得不同的输出,那么其中一项或多项是错误的:)
如果您已经开发了自己的加密系统(例如自己实现了 3DES),那么这可能就是您的错误所在。始终将密码系统的实施留给学术专业人士。
我将假设您正确设置了密钥和 IV,从而离开了密码块模式——这是最合理的解释,因为不同的平台有自己的默认值。
但是,如果您已验证所有这些内容在您的 .NET 和 Java 实现中都是相同的,那么您应该重新发布您的问题,但要提供更多详细信息,包括相关的源代码。