如何使用wpf在客户端存储敏感信息

时间:2014-10-28 12:26:23

标签: .net wpf security dll

如何在客户端计算机上存储许可证(第三方组件)或文件解密密钥等敏感信息?

此时此类信息被写入设置文件,dll中包含的内容。 但是如果你反编译dll,那么你可以找出值。

该应用程序是在WPF中构建的,并且大部分都处于脱机状态。

2 个答案:

答案 0 :(得分:0)

如果它在客户端,如果没有服务器验证,则无法100%安全:您无法加密解密密钥,您必须将其保留在明文处。

同时,只需在许可证中添加验证就足够了 - 例如,证书有一行是证书的哈希值,加上在您的应用程序中硬编码的盐。如果用户尝试编辑其许可证,则哈希值将更改,您可以抛出错误。

使用解密密钥,您应该查看公钥/私钥对,但如上所述,您无法加密解密密钥(至少,不能存储另一个未加密的密钥)

答案 1 :(得分:0)

每个dll都可以被反编译,这只是一个事实。你唯一能做的就是将事物用作代码混淆,并以难以准备的方式将密钥添加到你的dll中。使隐藏的东西成为必需的“犯罪能量”。

至于您的情况:最好不要将许可证存储在DLL中嵌入的文件中(超级易读),但可以将其直接放入代码中并使用代码混淆。这样就很难阅读这个第三方许可证。

相关问题