如何在保留类型信息的情况下实现基于非对称密钥的加密,例如int到int,string到string,datetime到datetime等。
在将数据发送到任何数据库之前,我需要在我的应用程序中使用它。在将对象发送到基于文档的DB之前,我希望加密对象的成员,并将加密值设置回对象的成员。
对象是静态类型的,也就是说是c#或java类实例。因此,场景是,我们不能将加密值(本质上是字符串)赋给非字符串数据类型,并且我们不想创建实例的副本,该实例包含相应字符串成员中的所有加密值,这样我将丢失类型信息。
任何帮助/建议都是非常感谢的。
发布于 2020-08-01 02:42:34
在将对象发送到基于文档的DB之前,我想对对象的成员进行加密,并将加密值设置回对象的成员。
因此,将类型与数据一起编码。这是完全独立于加密的。您想要对数据进行编码的任何方式都会有这个问题;无论您使用什么方式将其编码为JSON,其工作原理与您对其进行加密时完全相同。
需要注意的是,加密数据并不是“本质上是一个字符串”。加密的输出是一个随机的字节序列。
如何在实践中实现它高度依赖于您的用例和您的语言。不同的语言有非常不同的类型。但在每种语言中,都有一些方法可以将数据编码为序列化格式(JSON、Protobuf等)。这就是你想要关注的事情。一旦能够与任何序列化格式相互转换,就可以对该格式进行加密。重要的是序列化,而不是加密。
https://stackoverflow.com/questions/63197056
复制相似问题