当我使用eaz和newtonsoft json时,它会加密我所有的json数据。有没有办法在c#中解密或禁用数据加密?
我使用虚拟化和密码加密
发布于 2021-11-12 08:51:00
早在2020年,我就与Eazfuscator进行了交谈,并能够很好地使用构造函数将其集成在一起。
但是,您必须做的一件事是使用json property name属性,因为混淆的属性将被重命名,您不能确定它将获得什么名称,也不能保证“下一次”编译/混淆会生成相同的名称。
无论如何,修复方法1都足够简单,可以使用json中的名称通过构造函数进行映射
private class MyProprietaryData
{
internal MyProprietaryData(string a1, int a2)
{
AccountNumber=a1;
Code=a2;
}
[JsonProperty("a1")]
public string AccountNumber{get;}
[JsonProperty("a2")]
public int Code{get;}
}方法2使用json填充字段,而不是属性
private class MyProprietaryData
{
[JsonProperty("a1")]
string _accountNumber;
[JsonProperty("a2")]
int _code;
internal MyProprietaryData(string accountNumber, int code)
{
AccountNumber=accountNumber;
Code=code;
}
[JsonIgnore]
public string AccountNumber =>_accountNumber;
[JsonIgnore]
public int Code => _code;
}除了.net提供的所有组合之外,您唯一应该记住的是字段重命名将像json序列化一样影响运行时生成的映射器。这在新的.net json和newtonsoft json上都有效。
你没有问它,但是一个免费的建议,当排除外部数据时,比如json,xml,gRPC总是假设数据被操纵并验证数据,你可以通过在数据中序列化的校验和字段来实现,如果是json在json构造函数注释的构造函数中进行检查。
https://stackoverflow.com/questions/50483018
复制相似问题