任何人都可以推荐一个Java库,其中包含适合在webapp中执行服务器端密码强度检查的方法.理想情况下,检查器应该是:
在我的项目中,我需要多次计算0-1向量的熵.这是我的代码:
def entropy(labels):
""" Computes entropy of 0-1 vector. """
n_labels = len(labels)
if n_labels <= 1:
return 0
counts = np.bincount(labels)
probs = counts[np.nonzero(counts)] / n_labels
n_classes = len(probs)
if n_classes <= 1:
return 0
return - np.sum(probs * np.log(probs)) / np.log(n_classes)
Run Code Online (Sandbox Code Playgroud)
有更快的方法吗?
某些应用程序(或网站)会在您键入时计算密码的复杂性.
它们通常显示一个红色条,它变为橙色,然后变为绿色,然后在密码变长时更加绿色,并包含更多类别的字符(例如,小写,大写,标点符号,数字).
如何可靠地计算密码的复杂性?
我已经提出了以下算法,但是我担心它被Password1!评为"非常强"和]@feé:m"弱",因为它只有7个字符长.
private int GetPasswordComplexity(string password)
{
if (password.Length <= 4)
return 1;
int complexity = 0;
int digit = 0;
int letter = 0;
int cap = 0;
int other = 0;
for (int i = 0; i < password.Length; i++)
{
if (char.IsDigit(password[i]) && i!=password.Length-1)
digit = 1;
else if (char.IsLower(password[i]))
letter = 1;
else if (char.IsUpper(password[i]) && i!=0)
cap = 1;
else
other = 1;
}
complexity = digit + letter …Run Code Online (Sandbox Code Playgroud) 我意识到这个话题有时会提出来,但我发现自己还没有完全确定这个话题.
我想知道你如何加盐哈希并使用盐渍哈希?如果使用随机生成的盐加密密码,我们如何在用户尝试进行身份验证时对其进行验证?我们还需要将生成的哈希存储在我们的数据库中吗?
有没有特别的方法盐应该生成?哪种加密方法更受青睐?从我听到的sha256是非常好的.
当用户进行身份验证时,是否可以将哈希"重新盐化"?最后,重复一次重要的安全措施是什么?
谢谢!
我需要能够告诉用户他们的密码是强还是弱(或介于两者之间).是否有图书馆或功能已经这样做了?
如果没有,那么确定密码是否安全的最佳方法是什么?