我需要在我的程序中将许可证绑定到硬件ID.我尝试过使用WMI,但它仍然很慢.
我需要,例如,CPU,HDD和主板信息.
我一直在查看本教程中的代码,我发现它用于My.Computer.Name保存不应在计算机之间漫游的设置.但是,完全有可能用户拥有两台名称相同的PC.例如,如果他们想在每台PC上拥有相同的用户名,他们最终可能会得到两台名为Username-PC的PC.
识别不同PC有哪些好方法?PC是否有与之关联的GUID,或者我是否应该考虑从某些硬件中提取序列号?我不关心通过重新安装Windows是否仍然存在.
(我链接的教程是在VB.Net中,但我在C#中实现它)
我的注册表中有以下密钥:
在:HKEY_LOCAL_MACHINE\SOFTWARE\RSA我有值对象调用 - WebExControlManagerPath它的值是c:\
我想这样做:
var r = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\RSA", "WebExControlManagerPth",null);
if(r!=null)
ProcessAsUser.Launch(ToString());
Run Code Online (Sandbox Code Playgroud)
但r价值总是空的.

有任何想法吗?
我正在编写一个开源的C#应用程序,我需要能够为每个用户存储已保存的登录信息.通常我只会加密密码,然后将其存储在用户设置文件中,但我担心由于代码是开源的,它有点无法加密它.因为所有人都要做的就是查看代码并获取加密密钥.
当然,它至少会比以纯文本存储的密码更难.但有没有像加密密码的好方法,但即使你有源码,它至少仍然非常难以解密?也许这样做至少几乎不可能在除了加密的计算机之外的任何计算机上解密?
编辑:澄清...我正在存储客户端密码,而不是密码来验证他们的服务登录.它是我无法控制的预先存在的Web服务的客户端.我只是想在本地存储密码以便自动登录...就像任何聊天客户端一样.
编辑2:完全对不起之前不清楚.但是密码必须在某些时候以明文检索并且哈希不是一个选项:(即使服务会让我传递密码哈希,有点打败目的,因为哈希会像密码一样好:P
如何快速为delphi应用程序生成唯一的计算机ID?我以前用c#很容易做到这一点,但有时失败了.我确实希望ID是"静态的",但我不在乎是因为硬件更改或操作系统重新安装而导致id更改,我打算将其存储在注册表中并在应用启动时检查它,如果它已更改更新注册表.(我知道如何编写注册表部分,我只需要帮助唯一的ID).
谢谢.
我正在考虑使用 Matlab 编译器来按价格分发软件。我正在研究(非常)简单的方法来阻止重新分发而不打扰用户。有什么建议吗?
一种想法是通过电子邮件向用户发送许可证密钥,并让他们在安装过程中输入该密钥,以便在许可证服务器上进行验证。如果密钥与服务器上的密钥匹配,则安装将照常进行,否则,将显示一条警告消息,通知用户购买另一个许可证。然而,这种方法要求指定的功能仅在安装过程中运行,而不是在安装之后运行(以免惹恼用户)。使用 Matlab 编译器或其他方式可以实现这一点吗?
我想我可以在用户的磁盘上创建一个文件,程序在启动时会查找该文件(如果存在,则不是第一次运行),但是如果用户复制整个目录,则该文件将被复制也。
c# ×4
.net ×2
license-key ×2
cpu ×1
delphi ×1
encryption ×1
guid ×1
hardware ×1
hardware-id ×1
licensing ×1
matlab ×1
passwords ×1
registry ×1
security ×1
unique ×1