Tag: 密码

存储盐以及散列密码的安全性如何

如果您查看了asp.net成员系统的表模式,他们会存储原始密码的哈希值以及用于生成密码的盐。 看下面的架构, dbo.aspnet_Membership ApplicationId UserId Password PasswordFormat PasswordSalt MobilePIN Email . . . 如果攻击者掌握了数据库,他是否更容易从盐中打开原始密码并散列密码? 在查看一些记录之后,似乎为每个密码生成了新的盐。 这有什么意义? 您会在代码中推荐这样的方法,还是硬代码常量盐 有关 如果攻击者知道盐是否对安全无用?

在C#中使用MD5CryptoServiceProvider存储密码是否安全?

我们将散列密码存储在数据库表中。 我们使用MD5CryptoServiceProvider为每个密码添加随机salt值和哈希值。 这样安全吗? 我听说MD5“坏了”。 如果没有,您能推荐使用备用哈希方法(特定的.NET框架类)吗?

安全ID结构无效,在为AD用户属性设置新的SecurityDescriptor时出现此错误

我正在尝试在AD帐户中设置用户选项,同时创建帐户我尝试设置“用户无法更改密码”选项。 但是当我尝试设置新安全描述符的值时,我收到错误“安全ID结构无效”错误。 这是示例代码, string[] trustees = new string[] { @”NT AUTHORITY\SELF”, “EVERYONE” }; IADsSecurityDescriptor sd = (IADsSecurityDescriptor)usr.Properties[“ntSecurityDescriptor”].Value; IADsAccessControlList acl = (IADsAccessControlList)sd.DiscretionaryAcl; IADsAccessControlEntry ace = new AccessControlEntry(); foreach (string trustee in trustees) { ace.Trustee = trustee; ace.AceFlags = 0; //For remove ‘User cannot change password’ selection //ace.AceType = (int) ADS_ACETYPE_ENUM.ADS_ACETYPE_ACCESS_ALLOWED_OBJECT; ace.AceType = (int)ADS_ACETYPE_ENUM.ADS_ACETYPE_ACCESS_DENIED_OBJECT; ace.Flags = (int)ADS_FLAGTYPE_ENUM.ADS_FLAG_OBJECT_TYPE_PRESENT; […]

这是用MD5加密密码的好方法吗?

我之前从未加密过密码,这是我在这篇文章的帮助下想到的。 这篇文章没有包括盐,所以我不得不自己解决: UTF8Encoding encoder = new UTF8Encoding(); byte[] salt = new byte[8]; new Random().NextBytes(salt); byte[] encodedPassword = encoder.GetBytes(txtPassword.Text); byte[] saltedPassword = new byte[8 + encodedPassword.Length]; System.Buffer.BlockCopy(salt, 0, saltedPassword, 0, 8); System.Buffer.BlockCopy(encodedPassword, 0, saltedPassword, 8, encodedPassword.Length); byte[] encryptedPassword = new MD5CryptoServiceProvider().ComputeHash(saltedPassword); byte[] saltedEncryptedPassword = new byte[8 + encryptedPassword.Length]; System.Buffer.BlockCopy(salt, 0, saltedEncryptedPassword, 0, 8); System.Buffer.BlockCopy(encryptedPassword, 0, saltedEncryptedPassword, […]

如何在ASP.NET标识中使用ASP.NET成员资格数据库?

我有几个遗留的ASP.NET Web应用程序共享ASP.NET成员资格的数据库。 我想转向使用.NET Core和IdentityServer4的微服务架构,并在新的微服务生态系统中使用身份服务器来使用现有的ASP.NET Membership用户存储,但.NET Core似乎不支持ASP.NET Membership所有。 我目前有一个概念证据,涉及Web API,身份服务器和MVC Web应用程序作为我的客户端。 身份服务器实现IdentityUser的子类,并实现IUserStore / IUserPasswordStore / IUserEmailStore以使其适应我现有数据库中的ASP.NET Membership表。 我可以注册新用户并通过我的POC MVC客户端应用程序登录,但这些用户无法登录我的旧应用程序。 相反,在旧版应用程序中注册的用户无法登录我的POC MVC客户端。 我假设它是因为我的IPasswordHasher实现并没有像我的遗留应用程序中的ASP.NET成员资格一样散列密码。 以下是我的代码。 任何洞察我可能做错的事情都将非常感激。 安全和加密不是我的强项。 Startup.cs public class Startup { public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile(“appsettings.json”, optional: false, reloadOnChange: true) .AddJsonFile($”appsettings.{env.EnvironmentName}.json”, optional: true); if (env.IsDevelopment()) { // For more details on […]

将字符转换为虚拟键代码

我有一串值,我想在每个角色的窗口中模拟按键事件。 我计划将WM_KEYDOWN , WM_CHAR和WM_KEYUP事件发送到窗口(因为这是手动按下键时似乎发生的事情)。 这些消息需要基于虚拟键代码表在wParam中发送int。 我可以遍历字符串并获取每个字符,但是如何获取该字符并将其转换为与虚拟键代码对应的值? Convert.ToInt32()不起作用。

C# – 在本地安全地存储密码

我正在创建一个C#应用程序,它将在Kiosk风格的环境中锁定function(组合键,窗口任务栏等)。 其中一个要求是,某些人仍然可以使用密钥组合和密码来突破应用程序。 应用程序本身已完成,但我还没有找到一种存储和检查密码的好方法。 一切都应该存储在本地(没有检查网络数据库或其他)。 如何定义用于解锁我的应用程序的密码,同时使其灵活(无需重新编译应用程序即可更改密码)。 我怎样才能以安全的方式实现这一目标?

密码扩展 – 一种缓解CPU泛滥的方法

我现在正在所有网站上使用密码拉伸来获取所有用户帐户密码。 在db中,我存储了一个迭代计数和随机分配的盐以及最终的哈希值。 我使用SHA512作为哈希算法。 我在.Net 3.5 和 4.0(双框架库)中使用C#。 对于只获得随机分配密码的帐户(例如Web服务API用户等),我将迭代计数保持在一个范围内,使得密码检查不超过1秒左右。 多年来,根据这些网站是否坚持(!),我将考虑增加这些范围与CPU功率一致。 对于用户可能自己选择密码的帐户,我已经加快了迭代次数,因此在执行迭代时登录可能需要大约5秒。 所以我对密码的安全性感到满意; 但是现在我还有另外一个问题 – 如果我让8个不同的人立刻登录,我可以使用100%的使用率8个核心cpu充满5秒钟! 我目前的解决方案是使用迭代阈值:如果拉伸操作超过此值,我将其推送到由单个线程处理的队列。 我可以进一步扩展它,以便它最多使用机器中的一半处理器。 我还能做些什么吗? 您是否为密码存储和登录实现了此模式 – 您做了什么?

在开源应用程序中存储已保存的密码

我正在编写一个开源的C#应用​​程序,我需要能够为每个用户存储已保存的登录信息。 通常我只会加密密码,然后将其存储在用户设置文件中,但我担心由于代码是开源的,它有点无法加密它。 因为所有人都要做的就是查看代码并获取加密密钥。 当然,它至少会比以纯文本存储的密码更难。 但是有没有像加密密码的好方法,但即使你有源代码,它至少仍然非常难以解密? 也许这样做至少几乎不可能在除了加密的计算机之外的任何计算机上解密? 编辑:澄清……我正在存储客户端密码,而不是密码来validation他们的服务登录。 它是我无法控制的预先存在的Web服务的客户端。 我只是想在本地存储密码以便自动登录…就像任何聊天客户端一样。 编辑2:完全对不起之前不清楚。 但是密码必须在某些时候以明文检索并且哈希不是一个选项:(即使服务会让我传递密码哈希,这有点打败了目的,因为哈希会像密码一样好:P

C#中的密码加密?

如何在C#中加密和解密密码? 谢谢你的帮助。