有没有在c#中生成一个唯一的机器哈希

时间:2010-08-18 13:25:14

标签: c# .net

有没有办法为用户生成唯一的参考?也许基于机器ID,CPU /主板或其他任何可以从网页访问服务器端的东西?

我希望看看我是否根据机器创建了一种不需要cookie的Id。

4 个答案:

答案 0 :(得分:5)

如果您只使用网络服务器代码或javascript客户端代码发现这一点,那么您在浏览器中发现了一个很快就会修补的安全漏洞。根据设计,浏览器会限制发送到服务器或暴露给脚本的信息。

您可以使用Cookie,让用户运行其他代码(您可以使用Flash Cookie等),或查看类似Panopticlick(几乎不可靠100%)或{{ 3}}

答案 1 :(得分:1)

您可以从BrowserSpy收集一些方法。

答案 2 :(得分:1)

网页永远无法访问计算机硬件。您需要一个程序在机器上本地运行(java,c ++,c#..),并且完全信任以获得对此资源的访问权限。也许您也可以使用已签名的applet或ocx控件,但大多数用户都不会接受。

浏览器向服务器发送的信息(如用户代理,语言,已安装的插件和IP地址)是您拥有的唯一信息。但不保证它们是独一无二的。

答案 3 :(得分:1)

答案是“不是真的”。 Javascript不直接提供您需要的任何信息,我认为您需要问问自己为什么需要此信息。

也就是说,对于IE,你可以构造一个ActiveX对象,它抓取必要的信息并将其传递给javascript。但是与其他浏览器/操作系统不兼容。请参阅文章here,了解将处理器详细信息转换为javascript的示例。