以编程方式创建Windows用户而无需对密码进行硬编码

时间:2013-11-27 16:29:16

标签: c# .net windows security winapi

如何使用某些命令行工具或Windows API或.NET创建Windows用户而无需对密码进行硬编码,我需要一种方法来创建具有某些密码的用户,而无需实际知道此密码,(程序只知道其哈希值)例如)。

例如:

使用特定密码创建Windows用户的任何方法都是这样的:

UsersUtil.CreateUser("username", "SpIcif1c_Passw0rd");

我需要一个像这样的代码:

UsersUtil.CreateUser("username", "7604905d86ed36b69a657366e5b5c35f");
//"7604905d86ed36b69a657366e5b5c35f" is the hash for SpIcif1c_Passw0rd for example

我需要这个CreateUser方法的代码或类似的东西!!

1 个答案:

答案 0 :(得分:1)

不幸的是,这有两个问题:

  1. 据我所知,Windows不提供任何支持的机制。有可能通过直接操作SAM来做到这一点,但不能保证今天有效的方法明天会有效。

  2. 在Windows中,密码哈希是等同于密码的,即,任何知道哈希的人都可以(在某些情况下)访问该帐户,就好像他或她有密码一样。因此,使用哈希而不是密码实际上并没有为您提供您可能想要的安全优势。 (谷歌“传递哈希”以获取更多信息。)

  3. 如果您发布另一个描述您的场景的问题,我们可能会建议其他方法,但我担心这通常是一个难以解决的问题。或者,如果您愿意,可以直接给我发电子邮件(请参阅我的个人资料以获取联系方式),我也许可以提供帮助。