草庐IT

密码学

全部标签

c# - 如何在我的自定义表而不是 aspnet 用户中保存带有散列密码的新记录?

我正在使用asp.net身份创建新用户但出现错误:CannotinsertthevalueNULLintocolumn'Id',table'Mydb.dbo.AspNetUsers';columndoesnotallownulls.INSERTfails.\r\nThestatementhasbeenterminated但在这里我没有像AspNetUsers这样的表,而是我有自己的表,即Users。代码:Web.config:2个连接字符串IdentityModel.cs:publicclassApplicationUser:IdentityUser{publicasyncTaskGe

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

我正在编写一个开源的C#应用程序,我需要能够为每个用户存储已保存的登录信息。通常我只会加密密码,然后将其存储在用户设置文件中,但我担心由于代码是开源的,它有点破坏了加密它的意义。因为任何人都需要做的就是查看代码并获取加密key。诚然,这至少比以纯文本形式存储密码要难得多。但是有没有什么好的加密密码的方法,但即使你有源代码,它至少仍然非常难以解密?也许能做到,这样至少就差不多了不可能在加密它的计算机以外的任何计算机上解密?编辑:澄清...我存储的是客户端密码,而不是用于验证服务登录的密码。它是我无法控制的预先存在的Web服务的客户端。我只想在本地存储密码以进行自动登录……就像任何聊天客户

c# - 使用 Windows .NET 或 ASP.NET 应用程序时在何处存储数据库密码

我有一个困扰我多年的场景。如果您必须使用用户名和密码连接到数据库或其他服务(如Web服务),如果您通过.NET程序集连接,那么存储此信息的最安全位置在哪里?我知道您必须对密码进行加密,但随后您会遇到一种先有鸡还是先有蛋的问题-很好-您可以对其进行加密,但是您将key放在哪里?在.NET中,您不能对密码进行硬编码,因为您可以反编译.NET代码。我研究过在隔离存储中使用基于程序集的权限,但MS建议不要将未加密的secret项目存储在那里,因为特权用户可以获得访问权限,因此我们再次将问题从A点转移到B点。例如,域管理员无需了解数据库中的信息就可以获得访问权限,因为能够成为域中任何工作站的管理

c# - 在持续部署中管理密码

我们正在使用TeamCity部署持续集成环境。当我们完成CI流程并转向持续部署时,我们遇到了如何管理生产密码的问题。对于配置中的其他更改,我们使用Web.Config转换。但是,我真的不想在构建配置文件中烘焙生产密码。在CI/CD之前,我们会获取Web.config,使用aspnet_regiis解密连接字符串,更改密码,然后重新加密。显然,这很容易出错,根本不符合CI/CD的精神。我还有其他几个想法,基本上都是关于在部署脚本中使用某些东西来重写然后加密文件的连接字符串部分,但这似乎一定是一个常见问题,而且必须是一些普遍接受的解决方案。但到目前为止,我找不到它。有没有“正确的方法”?谢

c# - 默认 ASP.NET Core 身份密码的正则表达式

注意:我相信这个问题不是这个question的重复问题.我的问题是处理asp.netcoreidentity用于密码验证的默认验证规则以及如何制作它的正则表达式,而链接的问题正在讨论,一般来说是关于验证密码的行为(这不能解决我的问题)ASP.NETCore在密码验证后启用默认值最少8个字符应该至少有一个数字应该至少有一个大写应该至少有一个小写至少应有一个特殊字符(允许使用哪些特殊字符?)牢记这些条件,我尝试制作以下正则表达式,但它不起作用。^((?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])|(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[^a-z

c# - ASP.NET 成员更改密码不起作用

我有这段代码可以在用户单击密码重置按钮时更改用户的密码(有额外的代码可以登录ELMAH,这样我就可以尝试找出问题所在)。这是在ASP.NETMVC2中,使用标准的aspnet成员提供程序,带有一个像这样的简单View:NewPassword:______ConfirmPassword:______[Reset][Cancel]这个View的路由是/Account/Reset/guid,其中guid是用户在aspnet成员数据库中的id。代码的关键部分是它调用user.ChangePassword()的地方。您可以看到它在成功时记录了一条消息。问题是对于某些用户,记录了成功消息,但他们无

c# - Active Directory 用户密码到期日期 .NET/OU 组策略

我在网站上搜索了信息,发现了这个:ASP.NETC#ActiveDirectory-Seehowlongbeforeauser'spasswordexpires这解释了如何根据域策略获取密码何时过期的值。我的问题是:如果用户的OU组策略具有不同的MaxPasswordAge值,覆盖域组策略中指定的值怎么办?如何以编程方式获取OU的组策略对象?编辑:为了让这个问题更清楚一点,我添加了这个编辑。我所追求的是能够判断用户密码何时过期。据我了解,日期值可以受域本地策略或组对象策略的约束。我有一个将Linq转换为Ldap查询的Linq2DirectoryServiceProvider。因此,获取

c# - 通过代码更改旧密码的 OWIN 身份密码?

我在MVC5中有一个带有OWINIdentity的Web应用程序,我想知道是否可以在不知道旧密码的情况下从代码更改用户密码。因为ChangePassword方法需要userId、oldPassword和newPassword。 最佳答案 在这种情况下,您会将ChangePassword视为重置密码。您可以通过生成token并使用该token直接使用新密码验证它来使用重置密码来实现此目的。varuserId=User.Identity.GetUserId();vartoken=awaitUserManager.GeneratePass

c# - ASP.NET Membership Provider - 重置密码功能 - 电子邮件确认和密码更改

有没有人有针对以下功能的解决方案(示例代码):创建一个randomGuid/Cryptographically强随机数发送一个包含随机数到用户的电子邮件地址确认后,系统会询问用户更改密码我的提供者目前是这样参数化的:enablePasswordRetrieval="false"enablePasswordReset="true"requiresQuestionAndAnswer="false"applicationName="/"requiresUniqueEmail="true"passwordFormat="Hashed"maxInvalidPasswordAttempts="5"

c# - .NET 包含的哪些哈希算法适用于密码哈希?

passwordleakofLinkedIn证明了安全地散列密码的重要性。然而,即使使用“普通”哈希算法(例如MD5和SHA系列)对密码进行哈希处理也不安全,因为它们针对速度进行了优化,允许黑客每秒计算23亿个哈希值(蛮力)。有些散列算法使用起来更安全,因为它们的计算量更大,例如PBKDF2,Bcrypt、PBMAC和scrypt.然而,这些哈希算法似乎并未包含在.NET框架中。那么,.NET框架中包含哪些性能密集型哈希算法?答案:PBKDF2包含在框架中,并且thissiteshowshowtouseitproperly. 最佳答案