Python中文
首页
教程
问答
标签
搜索
登录
注册
Python crypt模块——盐的正确用法是什么?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>首先,上下文:我试图创建一个基于命令行的工具(Linux),它 需要登录。这个工具上的帐户与 系统级帐户——这些都不看/etc/passwd。</p> <p>我计划使用与/etc/passwd相同的格式(大致)将用户帐户存储在文本文件中。</p> <p>尽管没有使用系统级密码文件,使用crypt似乎 作为一种良好的使用习惯,而不是将密码存储在 明文。(虽然crypt肯定比将密码存储在 cleartext,我对其他方式持开放态度。)</p> <p>我的地穴知识是基于这个: <a href="https://docs.python.org/2/library/crypt.html" rel="nofollow noreferrer">https://docs.python.org/2/library/crypt.html</a></p> <p>文档似乎要求一些不可能的东西:“它 建议在检查时使用完全加密的密码作为salt 获取密码。“</p> <p>嗯?如果我正在创建加密密码(如中创建用户时 记录)如何使用加密密码作为盐?它 还不存在。(我假设您必须使用相同的salt来创建和检查密码。)</p> <p>我试过把明文密码当作盐用。这是真的 工作,但有两个问题;一个很容易克服,一个很严重:</p> <p>1)明文密码的前两个字母包含在 密码加密。你可以不写前两个来解决这个问题 文件中的字符:</p> <pre><code>user_record = '%s:%s:%s' % (user_name, crypted_pw[2:], user_type) </code></pre> <p>2)使用明文密码作为盐,您似乎 减少系统中的熵。可能是我 误会盐的作用。</p> <p>我得到的最佳实践是使用前两个 用户名中的字符作为salt。这合适吗, 或者是我错过了什么让这件事变得很糟糕?</p> <p>我对salt的理解是它防止预计算密码 字典里的散列。我可以用标准盐 密码(比如我的首字母“JS”),但这似乎不是 攻击者的负担比使用每个用户用户名中的两个字符更重。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您误解了文档;它说,由于salt的长度可能因底层crypt()实现而异,因此在检查密码时,应该提供整个加密密码作为salt值<em>。也就是说,不要把前两个字符作为盐,只要把整个东西扔进去。</p> <p>你认为最初的salt是以用户名为基础的,这似乎没问题。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在Excel中读取公式并将其转换为Python中的计算?
2 回答
如何在excel中读取嵌入的excel,并将嵌入文件中的信息存储在主excel文件中?
8 回答
如何在Excel中返回未知列长度的非空顶行列值?
9 回答
如何在excel中选择数据列?
4 回答
如何在Excel中通过脚本自动为一列中的所有单元格创建公共别名
8 回答
如何在excel中高效格式化范围AttributeError:“tuple”对象没有属性“fill”
2 回答
如何在excel单元格中编写python函数
5 回答
如何在excel单元格中自动执行此python代码?
3 回答
如何在excel工作表中创建具有相应值的新列
8 回答
如何在Excel工作表中复制条件为单元格颜色的python数据框?
4 回答
如何在Excel工作表中循环
9 回答
如何在excel工作表中打印嵌套词典?
3 回答
如何在excel工作表中绘制所有类的继承树?
4 回答
如何在Excel工作表中自动调整列宽?
10 回答
如何在excel工作表中追加并进一步处理
9 回答
如何在excel工作表之间进行更改?
2 回答
如何在excel或csv上获取selenium数据?
1 回答
如何在Excel或Python中将正确的值赋给正确的列
4 回答
如何在excel或python中提取单词周围的文本?
5 回答
如何在excel或python中转换来自Jira的3w 1d 4h的fromat数据?
10 回答