我可以分发使用用户无法访问的密钥的.NET应用程序,但应用程序可以吗?
请注意,我使用“em> distribute 这个词,因为应用程序是在用户的计算机上运行而不是在云或集群中运行。
答案 0 :(得分:6)
您的应用程序中的任何内容都可以由技术娴熟的用户访问。
这就是为什么游戏之类的东西从在程序中存储密钥算法转移到使用外部游戏制造商拥有的服务器验证。
如果你只是试图阻止普通的乔,只需将其哈希并存储就像任何其他变量一样......就像门上的挂锁一样,它不会阻挡确定的用户,但保持诚实的人诚实
答案 1 :(得分:2)
您的问题有两个一般性答案。
如果你的问题是:
我是否可以以任何方式传递密钥与我的可执行文件一起使任何用户100%无法访问,但我的程序仍然可以访问它?
然后答案是:不,你不能。
您的代码可以执行任何操作,用户也可以这样做。
您所能做的就是让用户难以接受。加密它,隐藏它。
如果你的问题是:
我是否有可能以任何方式传递密钥与我的可执行文件一起使我的用户无法访问,但我的程序仍然可以访问它?
然后答案是这样的:见第一个案例的答案,特别是关于让用户难以接受的部分。
答案 2 :(得分:1)
根据您尝试加密的内容,您可以提供公钥,保留您的私钥,然后您可以自由分发。你想要完成什么?
答案 3 :(得分:1)
不是真的。您可以使恼人的来检索密钥,但如果程序可以使用它,则用户也不可避免地会读取它。