不止一次有人问我hash与MD5的区别以及如何选择使用,今天有人问我了,其实这方面我懂的也不太多,基础的还是了解一些的,把我知道的记一下吧。
MD5和Hash的区别
首先,MD5与hash都是单向加密的算法,可以把一些信息进行单向加密成固定长度的散列码。(hash算法即常说的散列算法,也被人翻译成哈希)
其次,MD5也是hash算法的一种,常见的hash算法还有sha1,sha2等
MD5也被称为信息摘要算法,由于其算法复杂不够,容易被暴力破解的。
SHA1算法也存在和MD5一样的问题。
还有SHA2、SHA256、SHA512等,这些算法的复杂度相对要高,但是依然是可被破解的只是破解成本被增加了,但是一些常用的文本信息(比如密码)的散列码被一些专业厂端记录下来了,还是容易被破解的,怎么办呢? 加个密码盐呗,这样的话暴力破解几乎是搞不定了,即使搞定了可能也因为过去太久时间而变的没有价值
常用的密码攻击方式
常用的密码攻击方式有字典攻击、暴力破解、查表法、反向查表法、彩虹表等。
暴力破解:按照一定的顺序一个一个的去试
字典攻击:把常用的密码做成字典,破解时先看字典里是否存在,有效加快破解速度
查表法:使用一个大型字典,把每个p和对应的q都记录下来,按q做一下索引,直接查找匹配。
彩虹表 :对于HASH的传统做法是把H(X)的所有输出穷举,查找H(X[y])H§,得出PX[y]。而彩虹表则是使用散列链的方式进行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2019-03-05 数据库连接超时执行超时
2019-03-05 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。
2019-03-05 Windows把内存变成快速虚拟硬盘
2019-03-05 Ramdisk虚拟内存盘,Swap分区
2018-03-05 C#实现的三种方式实现模拟键盘按键
2013-03-05 ADO.NET Entity Framework