首页 / 知识
关于数据库:简单的密码加密
2023-04-13 09:54:00

Simple password encryption什么是用于保护数据库中密码的简单加密方案? 我不一定需要任何超级安全的东西,也不需要任何快速闪电的东西,但那些东西会很好。 首先,我只想要一些易于实现而不会非常缓慢或不安全的东西。 正如mk所说, SHA1或MD5是标准的,还有SHA2 s>。
更新:随着处理器多年来变得更快,哈希变得更加强大。现在建议你使用 您想要的更通常称为加密哈希函数。加密哈希被设计为单向(给定结果哈希,您不应该能够导出原始输入)。此外,具有相同散列的两个任意字符串(称为散列冲突)的可能性应该是低的(理想地是1 /散列值的数量)。 不幸的是,仅仅因为你的密码是经过哈希处理的,并不能让你免于努力保持哈希版本的安全。很多人会使用容易受到离线暴力攻击的弱密码。 编辑 - 几个人也已经指出了使用盐的重要性。 salt是一个常量值,在使用哈希函数之前,它与输入混合在一起。拥有独特的盐可防止离线攻击者使用预先计算的常用密码表(彩虹表)来更快地强制您的密码。 容易:BCrypt。 如果你使用MD5或SHA1使用盐来避免彩虹表黑客攻击。 在C#中这很容易:
MD5或SHA1 +盐。 Jeff's你可能错误地存储密码文章是关于这个主题的优秀阅读。
几个星期前,这是我的一个问题。 这迫使我们坐下来将我们的盐渍和迭代哈希密码存储方案转换为规范,并提供一些不同的语言实现以便于集成。
我们简称为Fairly Secure Hashed Passwords或FSHP。 FSHP是一个盐渍的,迭代哈希的密码哈希实现。
设计原理与RFC 2898中的PBKDF1规范类似 安全:
默认FSHP1使用8字节盐,具有4096次SHA-256散列迭代。 实现:
每个人都非常欢迎创建缺少语言的实现或 基本操作(使用Python):
自定义CRYPT:
让我们削弱我们的密码哈希方案。
使用SHA单向散列算法和唯一的盐。它是我用于在数据库中存储密码的主要算法。 我注意到很多关于如何正确进行密码哈希的困惑,特别是在stackoverflow上。所以我写了一个应该清除所有内容的页面。除了使用简单的哈希之外,还有更多内容。 更多信息:如何正确进行密码散列 如果您希望面向未来的解决方案,我建议使用SHA256或SHA512。加密geekworld正在让人们对MD5感到紧张,而在较小程度上则是SHA1。 或者,如果可以,请等待SHA-3 对于不可逆加密,我绝对会使用SHA256或SHA1。 MD5现在有很多冲突,并且已经付出很多努力来打破它,所以不是一个好用的。 我认为,提高安全性的关键是使用动态盐。这意味着您为每个新用户生成一个随机字符串,并使用该字符串来填充哈希值。当然,您需要将此salt存储在数据库中以便以后能够验证密码(我不以任何方式加密它)。
您需要使用单向散列算法,如上面提到的SHA-1和salt。我会建议这个网站获取更多信息。它包括一些示例代码/实现。 我用二次投票给MD5或SHA投票。任何主要的Web开发语言都具有内置的用于计算哈希的函数(例如,在PHP中,mcrypt包包含必要的函数)。 如果您使用的是SQL Server,那么就有HashBytes函数: http://msdn.microsoft.com/en-us/library/ms174415.aspx |
最新内容
相关内容
Python如何玩转加密?
Python如何玩转加密?,系统,中期,公共,世纪,适当,标准,管理,培训,基础,密钥,python中的一个有用的基本加密库就叫做cryptography。它既是一个用于业余项目的优秀 Python 库
用于业余项目的优秀 Python 库,数据,工具,项目,信息,培训,系统,地图,下来,工作,管理,1.在数据库中即时保存数据:Dataset当我们想要在不知道最python 用于序列操作的常用内置函
python 用于序列操作的常用内置函数,较大,培训,列表,函数,元素,对象,参数,操作,字符串,序列,len(列表):返回列表中的元素个数,同样适用于元组、python中如何实现加密
python中如何实现加密,中国,数据,培训,信息,模块,你好,参数,字符串,长度,前后,1、Python中使用Base64加密:Python内置的base64模块可以直接进python凯撒密码python编程简单
python凯撒密码python编程简单,密码,代码,培训,信息,字母,字符串,大写字母,赋值,明文,古罗马,凯撒密码python编程简单1、说明凯撒密码是古罗关于安全性:禁用浏览器“保存密码”
关于安全性:禁用浏览器“保存密码”功能,关于安全性:禁用浏览器“保存密码”功能,医疗保健,政府,机构,我会,Disable browser 'Save Pa如何检查运行时使用的Visual Studi
如何检查运行时使用的Visual Studio的活动解决方案配置?,如何检查运行时使用的Visual Studio的活动解决方案配置?,配置,自定义,解决方强制解决方案资源管理器在Visual S
强制解决方案资源管理器在Visual Studio 2005的编辑器中选择文件,强制解决方案资源管理器在Visual Studio 2005的编辑器中选择文件关于算法:用于2D碰撞检测的技术资源
关于算法:用于2D碰撞检测的技术资源?,关于算法:用于2D碰撞检测的技术资源?,用于,碰撞检测,2D,网页,Resources of techniques use for col关于Visual Studio:升级VS.NET解决
关于Visual Studio:升级VS.NET解决方案和目标.NET框架的手动步骤?,关于Visual Studio:升级VS.NET解决方案和目标.NET框架的手动步骤?,升版本控制(即Subversion)是否适用于
版本控制(即Subversion)是否适用于文档跟踪?,版本控制(即Subversion)是否适用于文档跟踪?,文档,部门,多个,源代码,Is version control关于数据库:有人使用CouchDB吗?
关于数据库:有人使用CouchDB吗?,关于数据库:有人使用CouchDB吗?,项目,充斥,网站,代码类,Anyone using CouchDB?在过去的几年中,我一直关注