首页 \ 问答 \ 与以前的密码相比(Comparing with previous passwords)

与以前的密码相比(Comparing with previous passwords)

出于安全原因,出于明显的安全原因,我需要强制用户经常更改密码,而我不想要的是密码与前一密码非常接近。

但出于安全原因,我无法在DB中保留真实密码(即:我需要哈希它或任何其他方法)。 但我不认为比较哈希会有所帮助。

有没有办法比较2个密码,以了解它们是否彼此接近?

例如:密码和密码1彼此太靠近了。


For security reasons, I need to force the user to change his password quite often and something I don't want is a password really close to the previous one, for obvious security reasons.

But for security reason as well, I can't keep the real password in the DB (ie: I need to hash it or any other method). But I don't think comparing the hashes will help.

Is there a way to compare 2 passwords in order to know if they are close to each other?

Ex: password and password1 are too close to each other.


原文:https://stackoverflow.com/questions/18735769
更新时间:2020-10-25 17:10

最满意答案

在让用户选择新密码时,您可以输入他/她的旧密码。 这允许您将新密码与旧密码进行比较,而无需将旧密码存储在纯文本中。


At the time of making the user choose a new password, you make him/her enter his/her old password. This allows you to compare the new password to the old password without having to store the old password in plaintext.

2013-09-11

相关问答

更多

你如何生成密码?(How do you generate passwords? [closed])

Mac OS X的“钥匙串访问”应用程序可让您访问漂亮的OS X密码生成器。 点击命令-N并点击键图标。 您可以选择密码样式(难忘,数字,字母数字,随机,FIPS-181)并选择长度。 它还会警告您密码较弱。 Mac OS X's "Keychain Access" application gives you access to the nice OS X password generator. Hit command-N and click the key icon. You get to ch ...

在android中存储不同的密码(Store different passwords in android)

我看到两种可能性: 散列所有密码(连同盐!)并将散列存储在普通的sqlite数据库中。 每次用户输入密码时,您都会生成散列(使用salt)并查看数据库中是否有密码哈希。 如果否,没有密码是正确的。 如果是,您可以查看哪些密码匹配,并转发到正确的表单活动。 请注意,用户输入密码时只需执行一次散列,因此您可以使用慢散列算法。 将密码存储在(AES-)加密数据库中,或以正常未加密数据库中的加密形式存储。 然后,您可以始终计算存储的密码的纯文本格式,以便于比较。 这种方法的缺点是您必须在您的应用程序中存储 ...

PSExec和安全密码(PSExec and secure passwords)

更仔细地考虑“获得对机器的访问权”的含义。 对于被盗的计算机,请考虑使用Bitlocker。 对于侵入式用户,请考虑用户权限和登录策略/权限。 保护文件最直接的方法是使用NTFS权限。 将文件存储在目录中,并仅为包含脚本运行程序帐户的特定组授予读访问权限。 加密凭证文件是一个鸡和蛋问题。 无论如何,您都需要将加密密钥存储在某处,除非每次运行脚本时都会提示密钥。 EFS可以在某种程度上使用,但它也不是银弹。 Think more carefully what's meant by "gains ac ...

如何防止用户使用sugarcrm中的ajax在新密码字段中输入以前的密码?(How to prevent user from entering previous passwords in a new password field using ajax in sugarcrm?)

首先,您必须存储用户的最后10个密码,因为在Sugar的默认行为中,您只能获得旧密码和新密码。 对于AJAX,您必须在控制器的帮助下在Users模块中创建一个操作,或者只需在custom / modules / Users中创建文件actionName.php 。 (参考链接 ) var URL = "index.php?module=Users&action=actionName"; YAHOO.util.Connect.asyncRequest('POST', URL, callBack); ...

我如何保持我的密码安全?(How do I keep my passwords secure?)

为了保持大部分同样的事情,你可以简单地改变你的步骤 客户要求用户输入用户名并通过 客户端建立到服务器的SSL连接。 客户端通过SSL连接发送用户名和密码。 服务器回应说这是否是正确的密码(correctpass / wrongpass)。 客户端向服务器发送一系列命令(所有命令都通过用于发送密码的相同SSL连接发送)。 服务器无需为每条消息重新验证用户的身份,只要您使用一个连续的连接,SSL层就可以在幕后无形中为您工作。 另一方面,Facebook并没有像你所描述的那样做,他们使用OAuth 。 ...

在wordpress上导入/使用SHA1密码(Import / use SHA1 passwords on wordpress)

你不能将sha1传递转换为md5。 另外wordpress使用salt来创建它的哈希值。 您有两个解决方案:简单的方法:向所有用户发送邮件,要求他们更改密码 艰难的一个:改变wordpress auth mecanism。 You can't convert sha1 pass to md5. Moreover wordpress use a salt to create it's hash. You have 2 solutions: The easy one: send a mailing t ...

在密码中允许空格(Allowing spaces in passwords)

你一定要在密码中允许空格。 许多人更喜欢使用密码短语 ,并且禁止你为他们付出生活的空间而没有任何好处。 除了允许使用密码而不是密码之外,还应该鼓励他们,因为他们更安全 (好吧,我承认我写这个的一半原因是放在xkcd链接中)。 You should definitely allow spaces in passwords. Many people prefer to use passphrases, and by disallowing spaces you are making life hard ...

代码可用的密码?(Pronouncable passwords?)

你会想调查马尔可夫链方法 。 这是一个例子: http://www.multicians.org/thvv/gpw.html 这里有一些自动生成的密码: http://www.manic.org/new/pw/pron.html You'll want to investigate the Markov chain method. Here's an example: http://www.multicians.org/thvv/gpw.html and here are some auto-ge ...

比较WPF MVVM中的两个密码(Comparing two Passwords in WPF MVVM)

ComparePasswordBehavior的实例对PasswordBoxBindingBehavior的实例一无所知,反之亦然。 此外,视图模型的可靠性是比较密码并设置IsEnabled属性。 该行为应该将PasswordBox的密码传输到视图模型。 您应该将SecureStrings存储在视图模型中并在那里进行比较。 请参考下面的示例代码。 行为: public class PasswordBehavior : Behavior<PasswordBox> { protected ov ...

与以前的密码相比(Comparing with previous passwords)

在让用户选择新密码时,您可以输入他/她的旧密码。 这允许您将新密码与旧密码进行比较,而无需将旧密码存储在纯文本中。 At the time of making the user choose a new password, you make him/her enter his/her old password. This allows you to compare the new password to the old password without having to store the ol ...

相关文章

更多

最新问答

更多
  • 如何保护Solr只允许SELECT请求给用户并禁止其他任何东西?(How to secure Solr to allow SELECT request to only users and disallow anything else?)
  • XPath表达式无效/错误TFHpple SWIFT 1.2(XPath Expression not working/incorrect TFHpple SWIFT 1.2)
  • css3 3D变换不能平滑地制作动画(css3 3D transform doesn't animate smoothly)
  • 运行时错误'91'和Outlook.Application = <对象变量或没有设置块变量>?(Run-time error '91' & Outlook.Application = Object variable or With block variable not set?)
  • 慢的webservice问题(Slow webservice problem)
  • textview的不正确对齐方式(Improper alignment of a textview)
  • 在第一步“Hello World”中出现Java错误(Cannot run “Hello World” program in Eclipse)
  • 为什么十六进制地址是14个字符?(why the hex address is 14 character?)
  • 如何在Python中的不同类中使用变量?(How to use variable in different classes in Python?)
  • asp:GridView HYPERLINKFIELD - datanavigateurlformatstring中的asp代码(asp:GridView HYPERLINKFIELD - asp code inside datanavigateurlformatstring)
  • 关于adaboost算法(About adaboost algorithm)
  • 在Matlab上内置图像(Built in Images on Matlab)
  • java swing:输入键事件时焦点丢失(java swing: Focus lost on enter key event)
  • C#中的通用约束,T是相同的TSomethingElse,对吧?(Generic constraints in C#, T is the same TSomethingElse, right?)
  • 从mybatis中的光标获取数据(Fetching data from cursor in mybatis)
  • 在运行时从XML构建对象的最佳方法(Best way for building objects out of XMLs at runtime)
  • 在整个窗口中拉伸sf :: Sprite(Stretch sf::Sprite across entire window)
  • Selenium Node API Web驱动程序等待超时处理程序(Selenium Node API web driver wait timeout handler)
  • 函数使用并且是map的一部分(循环依赖?)(Function uses and is part of map (circular dependency?))
  • 是否可以在C ++ 14中使用可选模板参数创建类型元组?(Is possible to make a tuple of types with optional template parameters in C++14?)
  • PHP从窗帘后面打印/ f(PHP prints /f from behind the curtains)
  • JFrame的contentPane的LayoutManager(LayoutManager of JFrame's contentPane)
  • 用于Instagram Feed的图像滚动(Image Roll Overs for Instagram Feed)
  • 如何显示拉伸字体(双倍宽度/高度)?(How to display stretched font (double width/height)?)
  • 文件操作API在fileapi.h和stdio.h中的WP8差异?(WP8 differences between file manipulation APIs in fileapi.h and stdio.h?)
  • 保存失败后Rails没有回滚事务()(Rails not rolling back transaction after failed save())
  • jqgrid中的分页问题与数组数据(Pagination problem in jqgrid with array data)
  • 重定向时,通过其他页面上的URL调用javascript函数(Call javascript function through url on otherpage while Redirecting)
  • 如何使用InvokeCommandAction调用我的方法并传入参数?(How do I go about using InvokeCommandAction to call a method of mine and pass in parameters?)
  • Jquerymobile按钮仅显示页面的第一个外观(Jquerymobile buttons are shown only first apperance of the page)