首页 > 其他分享 >MD5安全吗,MD5加密有哪些问题,如何提高安全性?

MD5安全吗,MD5加密有哪些问题,如何提高安全性?

时间:2022-12-28 18:01:45浏览次数:49  
标签:加密 散列值 安全 数据库 用户 密码 安全性 MD5

MD5是一种散列函数,在计算机安全领域得到广泛应用。然而,MD5国际密码算法被王小云研究团队证实并不安全,因为MD5本身存在一些缺点,这些缺点导致了MD5并不是很安全,可能会带来信息安全上的问题。那么,MD5加密有哪些问题,如何提高安全性?

MD5安全吗,MD5加密有哪些问题,如何提高安全性?_特殊字符

md5安全吗?

MD5不够安全,一是因为字典表很大。网上有很多MD5界面网站,通过在数据库存储很多常用的密码,可以在很短的时间内查找任何哈希值的答案。这种数据库占用大量的磁盘空间,具有一定的成功率。

在计算机安全领域,一些朋友需要用到MD5解密网站(md5.cn),通过这类型的网站,可以提高工作效率,大家可以去试试。

MD5安全吗,MD5加密有哪些问题,如何提高安全性?_数据库_02

二是,碰撞。安全的算法具有良好的抗冲突性,也就是说对于不同的单词,获得相同哈希值的可能性比较低,但是MD5的抗冲突性较低。

三是,暴力gong击速度很快。蛮力gong击是通过尝试多种可能性来查找密码的一种方法,即可以猜测用户可能使用的东西(出生日期,孩子的名字,宠物的名字等),也可以尝试一切(从a,b, c到10个字符的特殊字符密码)。抵御暴力gong击的唯一方法可能是密码长度,如果您拥有40个字符长的随机密码(带有特殊字符),那么目前你的密码可能是安全的。

MD5加密有哪些问题?

用户注册的时候保存的是用户输入密码的散列值,而不是保存密码。

这样在用户登录的时候,将用户的密码使用散列算法计算一下散列值,和数据库注册的时候保存的散列值比较一下。如果相同就认为登录成功。

其实这样是不安全的,只要把经常出现的密码和对应的散列值保存起来,保存到数据库。只要拿到用户密码的散列值,只要用户的密码不是非常复杂的,就很有可能把散列值的原始密码找出来。这样黑客就会继续撞库。

此时我们可以使用加盐算法。

在用户注册的时候,生成一个随机的复杂字符串做为"盐",这个盐也保存在数据库里面。同时把用户输入的密码加上这个盐,再计算出散列值保存在数据库中。这样在用户登录的时候,只要把用户输入的密码和盐连接起来,计算出一个散列值,再和数据库中的散列值比较一下,就可以知道密码是不是正确的了。

由于盐比较复杂,导致用户的密码和盐连接在一起的字符创更加复杂。这样计算出的散列值就很难反向推算出原始的密码了。即使用户密码很简单,不法分子拿到了散列值,也无法解密密码,也没法去别的网站尝试撞库了 。

MD5不安全,如何提高数据库的安全性?

MD5安全吗,MD5加密有哪些问题,如何提高安全性?_数据库_03

1、用盐

尝试做的第一件事就是在加密密码时使用salt,基本上,盐是您在每个密码之前和/或之后添加的单词。如果盐是“ randomsaltformypassword”,并且用户选择“ 654321”作为密码,则将“ randomsaltformypassword654321”用作MD5功能参数。

这样,你就可以在数据库中加密更长的密码,并且黑客很难找到相应的密码,请确保选择长字样以充分提高安全性。

2、使用长密码

强制用户使用更长的密码(可能是15个字符或更多),此外还可以增加密码的复杂度,以确保他们使用的是大写,小写和特殊字符。但是,人们经常会使用弱密码,因此很容易被猜到,更糟糕的是,有的人甚至在便签纸上记录密码。

3、使用其他哈希函数

最好的解决方案可能是使用其他加密算法,这不是最简单的方法,因为这可能必须更改数据库结构,但这可能是最安全的方法。

经过证实,MD5作为散列算法,仍然会存在两种不同数据会发生碰撞。而且,如果使用简单的密码,被解密出来的概率很大。这也是MD5不是很安全的原因。因此,大家设置密码的时候,可以设置复杂的密码,防止数据库被不法分子盗取后,拿去解密而轻易得到密码。

标签:加密,散列值,安全,数据库,用户,密码,安全性,MD5
From: https://blog.51cto.com/u_15718024/5975963

相关文章

  • 网站的安全性测试
    安全性保护数据以防止不合法用户故意造成的破坏;完整性保护数据以防止合法用户无意中造成的破坏;安全性测试(securitytesting)是有关验证应用程序的安全服务和识别潜在注意:......
  • unity 资源打包,MD5值计算注意点
    仅作记录:unity3d在修改资源时,有些类型的资源修改的是源文件,比如:fbx,mp3,.jpg,.png等。这些资源是外部资源导入unity3d中,untiy3d导入编译时,生成相应的meta文件,meta文件中保存......
  • go-dongle 0.2.3 版本发布,一个轻量级、语义化的 golang 编码解码、加密解密库
    dongle是一个轻量级、语义化、对开发者友好的Golang编码解码和加密解密库Dongle已被awesome-go收录,如果您觉得不错,请给个star吧github.com/golang-module/dong......
  • 修改配置 IIS 中的网站加密协议
    此处借助一个免费工具:IISCrypto 下载地址:https://www.nartac.com/Products/IISCrypto/它有GUI和CLI两个版本,方便操作的话,就选GUI版本  运行此工具后,会显示......
  • 安卓逆向 -- 自吐算法(MD5和SHA)
    一、主要框架,hook代码主要填写在try代码块里packagecom.bucuo.a20210908;importandroid.app.Application;importandroid.content.Context;importandroid.util.Log;impor......
  • .Net Core Md5 加密整理
    一、.NetCore中Md5使用说明.NetCore中自带Md5加密处理,使用方法和.NetFramework中相同所在命名空间:usingSystem.Security.Cryptography;usingSystem;us......
  • 如何使用hutool进行AES加密和解密?
    如何使用hutool进行AES加密和解密?下面直接贴出工具类,有需要的小伙伴可以直接拿去用。importcn.hutool.crypto.asymmetric.AsymmetricCrypto;importcn.hutool.crypto.......
  • 加密解决HTTP协议带来的安全问题
    HTTP协议默认是采取明文传输的,容易被中间人窃听、拦截、篡改,存在安全隐患。常见提高安全性的方法是对通信内容进行加密,再进行传输,常见的加密方式有不可逆加密:单向散列......
  • JavaScript安全性问题与最佳预防做法
    英文| ​​https://blog.bitsrc.io/javascript-security-issues-and-best-practices-37e78df4dce4​​翻译|web前端开发众所周知,JavaScript是一种非常完善的编程语言。J......
  • DES加密的verilog代码
    `timescale1ns/1ps////Company://Engineer:////CreateDate:14:36:2706/21/2009//DesignName://ModuleName:DESencode//ProjectName://TargetDe......