关于用户密码使用盐加密后,盐的存储位置

本贴最后更新于 1867 天前,其中的信息可能已经天翻地覆

如题,盐你们会存在数据库里面吗

  • 安全

    安全永远都不是一个小问题。

    203 引用 • 818 回帖 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    9567 引用 • 43550 回帖 • 98 关注

相关帖子

被采纳的回答

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone1764 via Linux

    有写在代码里的,有存在文件里的,也可以加密后存到数据库.. 便利性和安全系数成反比,看自我选择

  • wizardforcel

    固定的 salt 值不保险,我习惯把用户名或者用户名的某个编码当做 salt 值。

    1 回复
  • someone48938 via macOS

    常见的做法是每次随机生成 salt,然后将 salt 与密文一同入库(可以单独放一列,也可以 append 到加密后的密文之前,如果 salt 的长度确定的话)

  • yoss

    盐一定要用随机数。

    1 回复
  • wizardforcel via Android

    你这就叫教条主义。只要每个用户的 salt 不一样就足以防止彩虹表了。

    1 回复
  • yoss

    按照某种固定规律编码容易构造出盐从而构造彩虹表,所以才会强调一定要用随机值,看看 Wiki 上怎么解释的。

    1 回复
  • wizardforcel

    salt 不是隐藏的东西,是直接写在用户表里面的,黑客根本不用猜规律,直接 dump 数据库就行了。

    彩虹表的构造过程就是对常见密码跑一遍 md5(pw),假设这个复杂度是 f(n),那么无论用用户名还是新的随机值都是 m * f(n)m 是数据库中用户的数量,这两种方法本质上没区别。

    至于猜规律更是无稽之谈。给你前五个用户名,你给我预测下一个用户的用户名?能预测出来?

    1 回复
    1 操作
    wizardforcel 在 2020-03-06 22:37:25 更新了该回帖
  • yoss

    至于猜规律更是无稽之谈。给你前五个用户名,你给我预测下一个用户的用户名?能预测出来?

    这是你自己说的猜,我可没说要通过猜。

    1. 开源项目源码是公开的
    2. 公司代码员工都可以看

    用得着猜?

    所以盐一定要用随机数不是教条主义,不要自以为是耍小聪明。

    2 回复
  • wizardforcel via Android

    你对随机数太一知半解了。

    你拿线性同余算法生成出来的都是伪随机数。

    md5(用户名)可以看做真随机数。

    建议你好好研究一下标准库里的随机数都是怎么生成的,真随机数和伪随机数的区别,检验方法,然后再做做实验,别老跟这儿撕逼。

  • wizardforcel via Android

    如果你觉得,标准库里面的随机数算法,也就是线性同余 + 当前时间戳是真随机数的话,NAIVE。

    由于当天时间是不确定的,并且这种算法的输出在概率分布上足够随机,所以它在特定情形下可以当随机数用。

    但又不表明一切随机数就得按照这个算法来,其他的办法多了去了,懂?

    1 回复
  • nomec

    前来涨知识

  • yoss

    随机数生成本来就是一个博大精深的问题,你想岔开话题随你的便。

    1 回复
  • Eddie

    我记得只有量子计算机才有真的随机数。。。。

    1 回复
  • someone48938 1 via macOS

    x86 的 RDSEED 可以认为是一个 TRNG,近几年 Intel 和 AMD 的多数 CPU 都支持。见这篇文章

  • 233333

    不能光放盐,有时候需要一点味精huaji

请输入回帖内容 ...

推荐标签 标签

  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 4 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    170 引用 • 1529 回帖
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    25091 引用 • 103446 回帖
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖 • 2 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    42 引用 • 130 回帖 • 252 关注
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1441 引用 • 10068 回帖 • 496 关注
  • Office

    Office 现已更名为 Microsoft 365. Microsoft 365 将高级 Office 应用(如 Word、Excel 和 PowerPoint)与 1 TB 的 OneDrive 云存储空间、高级安全性等结合在一起,可帮助你在任何设备上完成操作。

    5 引用 • 34 回帖
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1454 回帖
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 648 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖 • 1 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 102 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 668 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 168 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    89 引用 • 1243 回帖 • 411 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    6 引用 • 26 回帖 • 548 关注
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖 • 1 关注
  • 反馈

    Communication channel for makers and users.

    126 引用 • 930 回帖 • 274 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    85 引用 • 165 回帖
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    345 引用 • 742 回帖
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 758 关注
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1742 回帖
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 178 关注
  • 浅吟主题

    Jeffrey Chen 制作的思源笔记主题,项目仓库:https://github.com/TCOTC/Whisper

    1 引用 • 28 回帖 • 4 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    20 引用 • 23 回帖 • 739 关注