加密类+序列化类
本文关键字:序列化 加密 | 更新日期: 2023-09-27 18:17:31
我试图在序列化类之前加密它。我发现的唯一方法是加密它并返回字符串或流,是否有可能返回原始类?
public static Options Encrypt(Options Settings)
{
Options sk = null;
try
{
using (var stream = new MemoryStream())
{
RuntimeTypeModel.Default.Serialize(stream, Settings);
byte[] data = encryptWithPadding(stream.ToArray(), 0);
String base64EncryptedString = Convert.ToBase64String(data);
// needs to return an option instance
}
}
catch (Exception e)
{
Global.LogError("Serialization failed", e);
}
return sk;
}
如果不对protobuf进行序列化,则无法对其进行"加密"。加密通常处理字节,而不是数据结构。如果您想加密它,然后将加密版本作为字段嵌入到其他协议中,请使其他字段的类型为bytes
而不是Options
。
(理论上,您可以单独加密Options
的每个字段,但这不会对您有多大帮助,并且很可能比加密整个序列化blob更不安全。)