相关疑难解决方法(0)

密码盐如何帮助抵御彩虹表攻击?

我在理解盐密封的目的时遇到了一些麻烦.据我所知,主要用途是阻碍彩虹表攻击.但是,我看到实现这一点的方法似乎并没有真正解决问题.

我见过许多教程,建议将盐用作以下内容:

$hash =  md5($salt.$password)
Run Code Online (Sandbox Code Playgroud)

原因是哈希现在不映射到原始密码,而是密码和盐的组合.但是说$salt=foo$password=bar$hash=3858f62230ac3c915f300c664312c63f.现在有人用彩虹表可以反转哈希并提出输入"foobar".然后他们可以尝试所有密码组合(f,fo,foo,... oobar,obar,bar,ar,ar).获取密码可能需要几毫秒,但其他情况并不多.

我见过的其他用途是在我的linux系统上.在/ etc/shadow中,散列密码实际上 salt一起存储.例如,"foo"的盐和"bar"的密码将散列到此:$1$foo$te5SBM.7C25fFDu6bIRbX1.如果一个黑客以某种方式能够得到这个文件,我不知道盐服务的目的是什么,因为te5SBM.7C25fFDu6bIRbX已知反向哈希包含"foo".

感谢任何人都可以解决这个问题.

编辑:谢谢你的帮助.为了总结我的理解,salt使得散列密码更加复杂,从而使得它更不可能存在于预先计算的彩虹表中.我之前误解的是,我假设所有哈希都存在彩虹表.

hash cryptography salt rainbowtable

217
推荐指数
7
解决办法
6万
查看次数

人们如何在Go中管理身份验证?

对于那些在Go中构建RESTful API和JS前端应用程序的人,您如何管理身份验证?您使用的是任何特定的库或技术吗?

我很惊讶地发现这个问题很少.我记得下面的答案,我试图避免开发自己的实现:

ASP.Net中的身份验证表单

每个人都分别编写自己的解决方案吗?

authentication go

180
推荐指数
6
解决办法
6万
查看次数

保存密码:最佳实践?

我一直都很好奇...在使用散列密码进行散列时哪个更好:前缀或后缀?为什么?或者它是否重要,只要你加盐?

为了解释:我们所有(希望)现在我们应该知道之前,我们哈希它存储在数据库中的密码[ 编辑:所以你能避免类似的事情发生了什么杰夫阿特伍德最近.通常,这是通过在将盐传递给散列算法之前将盐与密码连接来完成的.但是这些例子各不相同......有些例子在密码之前加盐.一些示例在密码添加salt .我甚至看到过一些尝试将盐放在中间的人.

那么哪种方法更好,为什么呢?有没有一种方法可以减少哈希冲突的可能性?我的谷歌搜索没有找到关于这个问题的体面分析.

编辑:很棒的答案人们!对不起,我只能选一个答案.:)

passwords hash cryptography salt

157
推荐指数
6
解决办法
7万
查看次数

保持密码可配置的最佳方法是什么,而不会让随意的人类读者容易使用它们?

我有一个数据库,许多不同的客户端应用程序(一些Web服务,一些Java应用程序和一些点网应用程序)连接到.并非所有这些都在Windows上运行(遗憾的是,否则只需启用数据库连接的Windows身份验证就可以解决这个问题).目前,密码存储在系统周围的各种配置/属性文件中.理想情况下,只有支持人员才能访问运行文件的服务器,但如果其他人获得对其中一个服务器的访问权限,他们将拥有足够的数据库权限,以便立即获得公平的数据查询.

那么我的问题是,保持密码可配置的最佳方法是什么,而不会让随意的人类读者轻易获得?

编辑只是为了澄清,DB服务器是Windows Server 2003,运行MSSQL 2005.

PS:我没有看到任何重复的问题,但如果有,请随时关闭这个.

database passwords

40
推荐指数
2
解决办法
6万
查看次数

在MYSQL数据库中存储密码的最佳方法

是的我知道不建议以纯文本格式存储密码.有一种最好的方法来存储密码,以便应用程序保持安全吗?

php

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

如何最好地存储用户信息和用户登录名和密码

我正在使用Mysql,我认为最好将用户个人信息及其登录名和密码分成两个不同的表,然后在两者之间引用它们.

注意:为了澄清我的帖子,我了解保护密码(哈希,盐等)的技巧.我只知道,如果我遵循生命中其他部分(投资,数据备份,甚至是个人存储)的做法,在最坏的情况下(包括表格或火灾),在表格之间分配信息可以保护您的其他数据.

php mysql security passwords

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

在php变量或php常量中以明文形式存储密码是否可以?

根据问题,在php页面上存储密码是否安全

$password = 'pa$$w0rd';
Run Code Online (Sandbox Code Playgroud)

如果用户看不到它,那就安全了吧?

编辑:有些人实际上建议使用哈希,但是,数据库服务器连接密码会出现问题,不是吗?

php security passwords

29
推荐指数
3
解决办法
3万
查看次数

用户名和密码的首选长度是多少?

我正在开发一个登录模块.我只是想知道你可以允许的用户名和密码的首选长度是什么?为什么?

提前致谢!

passwords username

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

在Web主机上存储密码或私钥的最佳方法是什么?

我不是指不必使用的密码(例如网站上其他用户的密码- 在这种情况下我真的不需要存储它们.请参阅https://stackoverflow.com/a/ 1054069/939213.)所以简单地存储哈希不是一种选择.

我指的是将密码存储到SQL数据库以及共享服务器上的软件必须使用的私钥.

我认为没有真正安全的方法来做到这一点.我只是想知道在这种情况下最好的是什么.

我试图让他们远离黑客(在同一个网络主机上).不是其他有权查看文件的人.

这将是使用它们的ASP.Net代码隐藏.

c# asp.net security web-hosting

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

错误消息:MongoError:错误的身份验证通过URI字符串失败

MongoDB和Node.js的新手。我试图通过mongo给我的连接字符串连接到我的mongoDB服务器:

“ mongodb + srv:// david:password@cluster0-re3gq.mongodb.net/test?retryWrites = true”

在我的代码中,我像这样通过猫鼬调用连接(显然输入了密码):

const mongoose = require('mongoose');
const db = 'mongodb+srv://david:<password>@cluster0-re3gq.mongodb.net/test?retryWrites=true'
mongoose
    .connect(db, { 
        useNewUrlParser: true,
        useCreateIndex: true
      })
    .then(() => console.log('MongoDB connected...'))
    .catch(err => console.log(err));
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,出现以下错误

“ MongoError:错误的身份验证失败。”

关于这意味着什么的任何想法?谢谢!

mongoose mongodb node.js

6
推荐指数
6
解决办法
7341
查看次数