序列化对象时如何加密所选属性?

我正在使用JSON在我的应用程序中存储某些设置。其中一些设置包含敏感信息(例如密码),而其他设置则不敏感。理想情况下,我希望能够序列化敏感属性被自动加密的对象,同时保持非敏感设置的可读性。有没有办法使用Json.Net做到这一点?我没有看到任何与加密有关的设置。

回答:

我的解决方案:

    public string PasswordEncrypted { get; set; }

[JsonIgnore]

public string Password

{

get

{

var encrypted = Convert.FromBase64String(PasswordEncrypted);

var data = ProtectedData.Unprotect(encrypted, AdditionalEntropy, DataProtectionScope.LocalMachine);

var res = Encoding.UTF8.GetString(data);

return res;

}

set

{

var data = Encoding.UTF8.GetBytes(value);

var encrypted = ProtectedData.Protect(data, AdditionalEntropy, DataProtectionScope.LocalMachine);

PasswordEncrypted = Convert.ToBase64String(encrypted);

}

(可以减少冗长)

以上是 序列化对象时如何加密所选属性? 的全部内容, 来源链接: utcz.com/qa/399793.html

回到顶部