在存储之前对密码进行两次哈希处理的安全性是否比仅仅哈希一次更安全?
我在说什么是这样做的:
$hashed_password = hash(hash($plaintext_password));
Run Code Online (Sandbox Code Playgroud)
而不仅仅是这个:
$hashed_password = hash($plaintext_password);
Run Code Online (Sandbox Code Playgroud)
如果它不太安全,你能提供一个很好的解释(或链接到一个)吗?
此外,使用的哈希函数是否有所作为?如果混合使用md5和sha1(例如)而不是重复相同的散列函数,它会有什么不同吗?
注1:当我说"双重哈希"时,我正在谈论两次哈希密码以试图使其更加模糊.我不是在谈论解决碰撞的技术.
注2:我知道我需要添加一个随机盐来真正使其安全.问题是使用相同算法进行两次散列是否有助于或损害散列.
我不确定密码哈希是如何工作的(将在以后实现),但现在需要创建数据库模式.
我正在考虑将密码限制为4-20个字符,但据我所知,加密后的哈希字符串将具有不同的长度.
那么,如何将这些密码存储在数据库中?
当EditText处于密码模式时,似乎提示以不同的字体显示(courrier?).我怎么能避免这个?我希望提示以与EditText不在密码模式时相同的字体显示.
我目前的xml:
<EditText
android:hint="@string/edt_password_hint"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:password="true"
android:singleLine="true" />
Run Code Online (Sandbox Code Playgroud) 我遇到了绑定到PasswordBox的问题.这似乎是一个安全风险,但我正在使用MVVM模式,所以我希望绕过这个.我在这里找到了一些有趣的代码(有没有人用过这个或类似的东西?)
http://www.wpftutorial.net/PasswordBox.html
它在技术上看起来很棒,但我不确定如何检索密码.
我基本上有我的LoginViewModelfor Username和属性Password.Username很好,正在工作,因为它是一个TextBox.
我按照说明使用了上面的代码并输入了这个
<PasswordBox ff:PasswordHelper.Attach="True"
ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/>
Run Code Online (Sandbox Code Playgroud)
当我有了PasswordBoxa TextBox,Binding Path=Password然后我的房产LoginViewModel被更新了.
我的代码很简单,基本上我有一个Commandfor my Button.当我按下它时会CanLogin被调用,如果它返回true,则调用它Login.
你可以看到我检查我的房产在Username这里工作得很好.
在Login我一起发送到我的服务Username和Password,Username包含数据从我View却Password是Null|Empty
private DelegateCommand loginCommand;
public string Username { get; set; }
public string Password { get; set; }
public ICommand LoginCommand
{
get
{ …Run Code Online (Sandbox Code Playgroud) 我刚刚在Mac OS X上安装了MySQL.下一步是设置root用户密码,所以接下来我做了这个:
在Unix提示符下,我执行了以下命令:
$ cd /usr/local/mysql/bin
$ ./mysqladmin -u root password 'password'
Run Code Online (Sandbox Code Playgroud)但是,当我执行命令时
$ ./mysql -u root这就是答案:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 224
Server version: 5.5.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for …Run Code Online (Sandbox Code Playgroud) 我正在看哈希算法,但找不到答案.
谢谢..
更新:
我想澄清一点,我理解散列和加密之间的区别.是什么促使我这样问这个问题的是这篇文章,作者将bcrypt称为"自适应散列"
由于bcrypt基于Blowfish,因此我认为Blowfish是一种哈希算法.如果它的答案已经指出加密,那么在我看来它应该不会在本文中占有一席之地.更糟糕的是,他总结说bcrypt是最好的.现在让我感到困惑的是phpass类(我相信用于密码哈希)使用bcrypt(即河豚,即加密).根据这些新信息,你们告诉我(河豚是加密),这个类听起来不对.我错过了什么吗?
当我们网站上的用户丢失密码并前往"忘记密码"页面时,我们需要给他一个新的临时密码.我真的不介意这是多么随机,或者如果它匹配所有"需要的"强密码规则,我想要做的就是给他们一个密码,以便以后更改.
该应用程序是一个用C#编写的Web应用程序.所以我一直在考虑使用Guid的简单方法.即
Guid.NewGuid().ToString("d").Substring(1,8)
Run Code Online (Sandbox Code Playgroud)
Suggesstions?想法?
你知道如何在Linux中尝试一些Sudo的东西它会告诉你输入密码,当你输入时,终端窗口中没有显示任何内容(密码没有显示)?
有没有办法在Python中做到这一点?我正在编写一个需要如此敏感信息的脚本,并希望在我输入时隐藏它.
换句话说,我想从用户那里获取密码而不显示密码.
我有一个小的Bash脚本,用于访问twitter并在某些情况下弹出Growl通知.什么是处理脚本存储密码的最佳方法?
我想将这个脚本提交给git repo并在GitHub上提供它,但我想知道在执行此操作时保持登录/密码私有的最佳方法是什么.目前,密码存储在脚本本身中.我无法在推送之前将其删除,因为所有旧提交都将包含密码.没有密码的开发不是一种选择.我想我应该将密码存储在外部配置文件中,但我想我会检查是否有一种既定的方法来处理这个问题,然后再尝试把它放在一起.
我尝试了以下代码......
string pass = "";
Console.Write("Enter your password: ");
ConsoleKeyInfo key;
do
{
key = Console.ReadKey(true);
// Backspace Should Not Work
if (key.Key != ConsoleKey.Backspace)
{
pass += key.KeyChar;
Console.Write("*");
}
else
{
Console.Write("\b");
}
}
// Stops Receving Keys Once Enter is Pressed
while (key.Key != ConsoleKey.Enter);
Console.WriteLine();
Console.WriteLine("The Password You entered is : " + pass);
Run Code Online (Sandbox Code Playgroud)
但是这样输入密码时退格功能不起作用.有什么建议吗?
passwords ×10
c# ×3
hash ×3
security ×3
cryptography ×2
mysql ×2
android ×1
bash ×1
command-line ×1
encryption ×1
fonts ×1
git ×1
github ×1
macos ×1
masking ×1
mvvm ×1
python ×1
random ×1
types ×1
user-input ×1
wpf ×1
wpf-controls ×1