Java 同一类设计的加密/解密版本
这是一个设计问题,我将尽量缩小范围,避免将其标记为开放式Java 同一类设计的加密/解密版本,java,design-patterns,encryption,decorator,Java,Design Patterns,Encryption,Decorator,这是一个设计问题,我将尽量缩小范围,避免将其标记为开放式 问题 需要一种有效的方法来设计一个或两个包含相同数据的类,但其中一个类将数据字段作为加密字符串,而第二个类将其作为解密字符串或整数。我收到加密的数据,对其解密一次,并允许我的应用程序使用解密版本。 我拥有的 我提出了不同的解决方案,但对其中任何一个都不满意。这就是我所尝试的: 一个带有布尔标志“encrypted”的类,最初设置为“true”,然后在数据解密后取消设置。缺点是,相同的字段被多次使用,即使有私有标志,听起来也不安全;另一个缺
问题
需要一种有效的方法来设计一个或两个包含相同数据的类,但其中一个类将数据字段作为加密字符串,而第二个类将其作为解密字符串或整数。我收到加密的数据,对其解密一次,并允许我的应用程序使用解密版本。
我拥有的
我提出了不同的解决方案,但对其中任何一个都不满意。这就是我所尝试的:
关于如何着手解决这个设计问题,有什么想法吗?将它们分开。将加密类视为消息类,将解密类视为实体对象。数据类型的变化和将来应用的任何字段验证将更易于管理。即使像字段宽度这样简单的东西在加密时也可能会变大。加密字段的最佳方法是简单地序列化对象实例并加密结果流。要获取解密的对象实例,只需解密流并反序列化对象。您不能使用第四种解决方案并让get方法适当地转换它们吗?例如,
String decryptedInt=“31415”
public int getDecryptedInt(){return Integer.valueOf(decryptedInt)}
?类不包含数据(当然,元数据除外),类的对象实例可能包含数据。事实上,这就是我最后做的,在与队友讨论后,我们得出了您的结论。谢谢