我正在创建C#
,Java
桌面应用程序(exe),我需要加密用户密码和许可证相关信息,因此我找到了这个link。但问题是,如果我使用RSA公钥/私钥加密,那么我将需要exe文件中的两个密钥来保持用户和许可证信息的可更改,但如果有人反向设计.exe文件并获取私钥,那么数据将是损害。
如何在.exe文件中保护我的私钥?还有其他技术可以从逆向工程中保存私钥吗?
有一些Obfuscate工具可以阻止逆向工程,但仍然可以看到私钥,使用这样的工具非常昂贵。
答案 0 :(得分:1)
对用户密码(如SHA)使用散列函数,不要在用户系统上存储私钥。对于许可信息,生成RSA签名许可证数据并通过电子邮件或任何其他方式将其发送给用户,您的应用程序将只需要许可服务器的公钥来验证许可证数据。
答案 1 :(得分:1)
简短的回答是否定的,没有技术可以将私钥保存在逆向工程中。没有混淆工具可以阻止私钥的逆向工程。您无法在私有密钥中保护可执行文件。
不要相信我的话。搜索已经将其私钥反向设计的被黑体系统的示例。有很多。我刚刚找到了这个例子:http://goodenoughsecurity.blogspot.com/2012/11/how-ps3-lv0-key-was-probably-hacked.html
答案 2 :(得分:-2)