我创建了一个小型WPF应用程序来执行某些操作。我想将此应用程序分发给某些人,但我希望它只能由授权人员访问。我真的不需要注册机制。
因为应用程序非常小并且将作为EXE文件提供,所以我认为拥有数据库不是一个有效的想法。
我在考虑在应用程序中包含一个包含授权人员凭据的文件,但据我所知,WPF应用程序可以很容易地进行逆向设计。我转过头思考让应用程序联系服务器来授权这个人或某事,但不确定它是否是一个好的选择。
你能否建议或向我推荐一些阅读或最佳实践来学习,因为每当我搜索这个主题时,我都会得到一个实现UI的例子(我知道该怎么做),而不是登录机制。
答案 0 :(得分:0)
答案 1 :(得分:0)
反转任何.Net应用程序非常容易,因此拥有一个身份验证系统是为了处理Noobs和不了解反向编程的人,你可以使用使用Cpu Id的身份验证系统,例如我使用,但任何方式像我说的任何.Net是可逆的。 我会在你的身份验证逻辑中删除:
public static string GetId( )
{
string cpuInfo = string.Empty;
ManagementClass mc = new ManagementClass("win32_processor");
ManagementObjectCollection moc = mc.GetInstances( );
foreach (ManagementObject mo in moc)
{
if (cpuInfo == "")
{
//Get only the first CPU's ID
cpuInfo = mo.Properties["processorID"].Value.ToString( );
break;
}
}
return cpuInfo;
}
你有cpu id后做一些加密
Public static string Encrypt(string CpuId)
{ // do some encryption
retuen encryptionCpuId;
}
之后在你的UI中创建一个对话窗口,向用户显示他的cpuID并将他发送给你,之后你将加密用户的cpuID并给他激活密钥,为此你必须创建一个其他用于生成加密的项目,并在您的应用程序(您要发布)中检查:
if(Key== Encrypt(GetId()) {// Welcome }
else {Environment.Exit(0); }
所以每个用户都有自己的密钥。
毕竟,你必须知道任何人都可以反映你的代码并破解这种机制。