序列化对象时如何加密所选属性?
我正在使用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