标签: password-encryption

存储可解密密码的安全方法

我正在使用PHP创建应用程序,并且要求必须能够解密密码,以避免将用户数据库切换到不同系统时将来出现问题.考虑到无法修改此未来系统的密码方法,我需要纯文本密码才能生成密码.

计划是使用存储在服务器上的公钥加密用户的密码.通过加密输入和比较结果来完成认证.没有解密完成.能够解密的私钥存储在异地以供以后使用.

您建议使用哪种加密/解密算法?当您认为攻击者无法使用私钥时,加密密码是否仍然像散列(MD5/SHA1)一样安全?

php security passwords password-encryption

8
推荐指数
3
解决办法
3354
查看次数

如何使用scrypt在Python中生成密码和salt的哈希值

我想用scrypt为我的用户的密码和盐创建一个哈希.我找到了两个 引用,但有一些我不了解它们.

他们使用scrypt加密和解密函数.一个加密随机字符串,另一个加密盐(看起来不对,因为只有密码而不是盐用于解密).看起来解密函数用于验证密码/ salt是解密的副作用.

基于我所理解的一点点,我想要的是密钥导出函数(KDF)而不是加密/解密,并且KDF很可能由scrypt生成并用于加密/解密.实际的KDF在幕后使用,我担心盲目跟随这些例子会导致错误.如果scrypt加密/解密函数用于生成和验证密码,我不明白加密字符串的作用.它的内容或长度是否重要?

python password-encryption scrypt

8
推荐指数
2
解决办法
1万
查看次数

对于PHP 5.3,建议使用哪种bcrypt实现?

好的,我终于理解了bcrypt,它是如何工作的,以及如何将它存储在数据库中,所以我几乎要好好去.现在的问题是选择使用哪种bcrypt实现与PHP 5.3.

我疯狂地看着所有不同的解决方案,我不确定哪一个是最推荐和最安全的,所以我再次转向你们.

以下是我发现的:

1)https://gist.github.com/marcoarment/1053158

2)http://www.openwall.com/phpass/

3)/sf/answers/443591501/

4)......别的什么?

这些可以互换,还是产生不同的哈希?我想认为,既然它们都是"bcrypt",他们会产生相同的结果,但我不知道(我测试1)2)以上,他们似乎是可互换的,因为所生产的散列1)上确认2)).

那么PHP的推荐解决方案是5.3什么?

php passwords hash bcrypt password-encryption

8
推荐指数
1
解决办法
5107
查看次数

散列密码的最佳做法

我想知道在数据库中使用哪种方法来存储密码.我使用MD5实现了它,但根据一些帖子,SHA1更安全.还有其他更安全的方法吗?请帮我找出保护密码的最佳方法.

c# password-encryption

8
推荐指数
1
解决办法
1万
查看次数

密码存储在内存中是否安全?

我倾向于将用户密码存储在内存中供以后使用.

var credentials = {};
function register(username,password){
    //when users click sign up
    credentials.username = username;
    creadentials.password = password;
}
function login(){
    //Users can click login at anytime. Or they just don't.
    ajax('/User/login',credentials).then(function(){
        credentials = {};
    });
}
Run Code Online (Sandbox Code Playgroud)

我应该担心这种方法的安全任务吗?如果这是一个坏主意,攻击者将如何检索密码?

javascript security password-encryption

8
推荐指数
1
解决办法
2519
查看次数

PHP password_hash(),默认还是自定义盐?

我正在考虑使用password_hash()函数来加密用户密码.我知道如果你没有提供它,这个函数会默认生成salt,甚至鼓励使用默认的salt而不是你自己的salt.我目前正在权衡3个选项,无法决定使用哪个,所以如果你能帮助我,我会很感激.

1.选项:password_hash(),默认为salt

$passwordInput = $_POST['password'];
$passwordHash = password_hash($passwordInput, PASSWORD_BCRYPT);
//INSERT $passwordHash INTO DATABASE
Run Code Online (Sandbox Code Playgroud)

2.选项:带自定义盐的password_hash()

$options = ['salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM)];
$passwordInput = $_POST['password'];
$passwordHash = password_hash($passwordInput, PASSWORD_BCRYPT, $options);
//INSERT $passwordHash INTO DATABASE
Run Code Online (Sandbox Code Playgroud)

3.选项:根本不使用password_hash()

我将此选项基于2014年的帖子:基于表单的网站身份验证的权威指南.基本上如果它是一个比password_hash()更安全的方法,我会使用这样的东西:

$salt = uniqid(rand(0, 1000000);
$passwordInput = $_POST['password'];
$password = hash('sha512', $salt . $passwordInput);
//INSERT $password AND $salt INTO DATABASE SEPARATELY
Run Code Online (Sandbox Code Playgroud)

php passwords password-encryption php-password-hash

8
推荐指数
1
解决办法
2968
查看次数

如何在Asp.Net identity 2中手动检查密码?

这实际上可能更像是一个概念性问题.在Asp.Net Identity中,每次执行时,PasswordHasher都会为同一个字符串生成不同的哈希:

new PasswordHasher.HashPassword("myString");
Run Code Online (Sandbox Code Playgroud)

现在,如果由于某种原因我需要手动将用户的输入与数据库中保存的密码进行比较,那么当我散列用户输入的密码时,我很可能会得到一个不同的字符串,而不是存储在数据库中的密码.

有人可以向我解释一下吗?不应该在相同的散列中散列相同的字符串,如果不是,Identity本身如何实现两个不同的散列实际上是相同的?

asp.net hash password-encryption asp.net-identity asp.net-identity-2

8
推荐指数
2
解决办法
6724
查看次数

如何解决密码管理 - 配置密码

嗨,我正在使用HP fortify查找我的应用程序的所有漏洞,现在我正在尝试解决一个看起来很基本的但我无法做到的.

问题是关于配置中的密码.我有一个Web应用程序,并在其中的属性文件中.

somePassword=passwordPlainText
Run Code Online (Sandbox Code Playgroud)

我同意这是错误的,然后我尝试使用http://www.jasypt.org/encrypting-configuration.html,OBS,CRYPT和ENC类型对几种方法进行混淆.但是当我扫描我的代码时,我总是从强化中得到相同的警告.难道我做错了什么?

谢谢

password-encryption fortify

8
推荐指数
1
解决办法
7479
查看次数

如何在C#/ Bouncy Castle中创建PBKDF2-SHA256密码哈希

我需要创建一个PBKDF2-SHA256密码哈希,但是遇到了一些麻烦.

我下载了Bouncy Castle的回购,但在单元测试中找到了我想要的东西.

在这里找到了一些示例代码,但这只是SHA1.代码的关键点是:

/// <summary>
/// Computes the PBKDF2-SHA1 hash of a password.
/// </summary>
/// <param name="password">The password to hash.</param>
/// <param name="salt">The salt.</param>
/// <param name="iterations">The PBKDF2 iteration count.</param>
/// <param name="outputBytes">The length of the hash to generate, in bytes.</param>
/// <returns>A hash of the password.</returns>
private static byte[] PBKDF2(string password, byte[] salt, int iterations, int outputBytes)
{
    var pdb = new Pkcs5S2ParametersGenerator();
    pdb.Init(PbeParametersGenerator.Pkcs5PasswordToBytes(password.ToCharArray()), salt,
                 iterations);
    var key = (KeyParameter)pdb.GenerateDerivedMacParameters(outputBytes * 8);
    return key.GetKey(); …
Run Code Online (Sandbox Code Playgroud)

c# hash bouncycastle password-encryption

7
推荐指数
1
解决办法
5498
查看次数

有没有一种方法可以在不使用第三方工具的情况下在 powershell 中对压缩存档进行密码加密?

使用powershell命令压缩文件夹后:

powershell -Command "& {Compress-Archive -Update -Path 'C:\myfolder' -CompressionLevel Optimal -DestinationPath C:\myfolder.zip}"
Run Code Online (Sandbox Code Playgroud)

是否有另一个 powershell 命令来密码保护/加密生成的 myfolder.zip 存档文件?

compression powershell password-protection password-encryption

7
推荐指数
1
解决办法
7127
查看次数