草庐IT

光猫密码

全部标签

c# - 将盐与散列密码一起存储有多安全

如果您查看过asp.net成员(member)系统的表模式,它们会存储原始密码的哈希值以及用于生成它的盐。请参阅下面的架构,dbo.aspnet_MembershipApplicationIdUserIdPasswordPasswordFormatPasswordSaltMobilePINEmail...如果攻击者掌握了数据库,他是否更容易从加盐和散列密码中破解原始密码?查看一些记录后,似乎为每个密码生成了一个新的盐。这有什么意义?您会推荐这种方法,还是在代码中硬编码常量salt相关Aresaltsuselessforsecurityiftheattackerknowsthem?

c# - 在程序代码中安全地存储密码?

我的应用程序使用RijndaelManaged类来加密数据。作为此加密的一部分,我使用了一个加载了密码的SecureString对象,该对象在运行时被转换为字节数组并加载到RajindaelManaged对象的key中。我的问题是这个SecureString的存储。用户输入的密码可以在运行时输入,并且可以“安全地”加载到SecureString对象中,但是如果没有给出用户输入的密码,那么我需要默认一些东西。所以最终问题归结为:如果每次我的应用程序运行时我都必须将一些已知的字符串或字节数组加载到SecureString对象中,我该怎么做?“加密”数据最终会被另一个应用程序解密,因此即使没

c# - 加密密码

我读过一些建议散列密码并将其存储在数据库中的问题。当有人登录时,您将提供的密码与您存储的内容进行哈希处理。我不明白的是这是如何工作的?两个字符串可以散列为相同的值-不太可能但绝对可能有人可以帮帮我吗?编辑:谁能给出碰撞可能性的统计数据? 最佳答案 您不应存储未加密的密码,因为您的数据库管理员不应该访问客户密码。对密码进行哈希处理可以防止数据库管理员看到密码。发生冲突的可能性非常小,这不是问题,因为这不会显着增加有人在您锁定帐户之前试图暴力破解客户密码获得匹配的可能性。PS在散列之前对密码进行加盐也是一种很好的做法,这样如果黑客以某种

c# - 如何使用 C# .NET 跨域设置/更改 Active Directory 用户密码?

我已经搜索了很长一段时间如何设置/更改密码以及撤销/恢复用户,但尚未找到真正适合我的解决方案。我开始倾向于将跨域作为问题所在,尽管我可以通过编程方式创建/删除/更新甚至连接/断开用户与组的连接。基本上,我尝试了以下方法:DirectoryEntryaccount=newDirectoryEntry("LDAP://"+adHostname+"/"+dn,adUserName,adPassword);account.Invoke("SetPassword","Password1");account.Properties["LockOutTime"].Value=0;account.Com

c# - Windows 身份验证 - 特殊用户需要额外的密码

我正在开发一个内联网asp.net核心webapi应用程序。身份验证的要求是:REQ1-当试图访问该网站的用户不在ActiveDirectory的特殊组(我们将其命名为“commonUsers”)时,它根本没有被授权REQ2-当试图访问该网站的用户在ActiveDirectory的“commonUsers”组中时获得授权并返回网络资源REQ3-当试图访问该网站的用户在ActiveDirectory的“superUser”组中时,需要再次提示他输入他的域密码(因为它试图访问一些非常受限的资源)现在,我到目前为止所拥有的:我的服务是使用http.sys服务器托管的,以支持Windows身份

c# - .Net 4.6 打破 XOR 密码模式?

在.NET4.5中,此密码在32位和64位架构上完美运行。将项目切换到.NET4.6会在64位中完全破解此密码,而在32位中有针对该问题的奇怪补丁。在我的方法“DecodeSkill”中,SkillLevel是唯一在.NET4.6上失效的部分。此处使用的变量是从网络流中读取并进行编码的。DecodeSkill(始终为SkillLevel返回正确的解码值)privatevoidDecodeSkill(){SkillId=(ushort)(ExchangeShortBits((SkillId^ObjectId^0x915d),13)+0x14be);SkillLevel=((ushort)

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的精神。我还有其他几个想法,基本上都是关于在部署脚本中使用某些东西来重写然后加密文件的连接字符串部分,但这似乎一定是一个常见问题,而且必须是一些普遍接受的解决方案。但到目前为止,我找不到它。有没有“正确的方法”?谢