MD5为什么要加盐

之前面试的时候,遇到一个面试的哥哥。不停的跟我确认我对网络传输过程中的password进行MD5加密的时候,是否加key了。
当时我很纳闷,因为MD5本身已经是不可逆的了,需要破解只有穷举法。只是一个相当耗时间的工作量。
而且,android里面提供的MD5接口也没有说要加key啊
搜索了一圈,没找到什么有用的资料
今天在整理关于网络交互过程中身份校验的相关资料的时候,遇到了一句话

md5的话记得加盐。

瞬间脑部了一下,这里的加盐是不是就是那个面试我的哥哥说的Key啊
再使用“android md5的话记得加盐”进行搜索的时候,得到的内容就多了....

MD5为什么要加盐

虽然MD5本身是不可逆的,但是现在网络上面关于MD5这类加密算法的反解析数据库很多,还有专门的网站。看到那个网站上的说明,你会感觉有那么一点的颤抖

本站针对md5等全球通用加密算法进行反向解密,拥有全球最大的数据库,成功率全球第一,很多复杂密文只有本站才可解密,支持多种算法,实时查询记录超过24万亿条,共占用160T硬盘,成功率95%,一般的查询是免费的。 MD5在线解密破密
而且,生活中很多人使用的密码的强度都很弱,典型的是:123456
总之,给md5加盐,目前来看是很有必要的

如何加盐

这里的加盐就比较简单,也多种多样

  • 把username作为盐
    用password+username进行MD5加密,作为加密之后的结果;假如username可变的话,就不可取了
  • 用password明文的hashcode作为盐
  • 随机生成一串字符串作为盐。这里的盐,需要一起上传给服务器进行保存。
    Discuz论坛密码就是这么整的。

写在最好

给MD5加盐的目的,增加被破解的难度。

密码学的应用安全,是建立在破解所要付出的成本远超出能得到的利益上的。

转载于:https://www.cnblogs.com/zhou-guobao/p/5458926.html

Android 网络交互之MD5为什么要加盐相关推荐

  1. JSON在Android网络交互中的使用方法

    在Android网络交互中使用到JSON传输接收数据. JSONObject为键值对形式的数据,内部使用LinkedHashMap实现.键的类型固定为String,值可取的类型在JSONObject, ...

  2. MD5工具类 加盐加密 及编码

    titls: MD5工具类加密 date: 2018/11/12 10:03:42 categories: 开发module import java.security.MessageDigest; i ...

  3. Java实现MD5加密及验证(两种方式,加盐md5与未加盐md5)

    一.加盐MD5加密工具 package com.dimpt.base.util;import java.io.UnsupportedEncodingException; import java.sec ...

  4. 数据库密码MD5加密、加盐的理解

    一.MD5加密 1)为什么?如果数据库里用户账号的密码没有加密处理,如果数据库被盗,密码被知道导致用户数据被窃取,这是很危险的.数据库里存放密码的密文会安全一点,密码安全性高的话破解也需要时间. 2) ...

  5. MD5加密、加盐和去盐

    前言 在程序里有一些敏感信息需要加密.下面列一下常见的加密: 散列加密 MD5是不可逆.不能解密.速度快等特点. 对称加密法:根据相同的钥匙,进行加密和解密 大数据量的加密和解密. 不对称加密法:两把 ...

  6. python md5加密和加盐_python的md5加密与加盐

    #md5加密是不可反解的 import hashlib #实例化对象 obj=hashlib.md5() #先创建一个md5的对象 #写入要加密的字节 obj.update("admin&q ...

  7. Android——网络交互,如何调用接口并且json解析json格式和pull解析xml格式

    本菜鸟因为之前一直使用的是公司前辈封装好的类(网络接口调用超级方便有木有)完全没有想过有一天我会自己写,然后今天接触的时候一脸懵逼,然后今天花了一天时间终于研究好了:哈哈哈哈哈 二话不说先上代码: p ...

  8. md5生成一个加盐程序c语言,MD5在编程中的实现 (C语言)

    在C语言中实现MD5算法 ------------------------------------------- */ #ifndef PROTOTYPES #define PROTOTYPES 0 ...

  9. 【项目】MD5加盐源码理解

    1.shiro中主要的类 简单看一下即可,shiro是一个安全验证框架,相对Spring security使用更为简单.本篇文章使用的的md5加密和加盐是基于shiro框架. 复制代码 主要功能:认证 ...

最新文章

  1. 你还有学了三年建模的朋友吗?他有救了
  2. 有源淹没分析arcgis_基于ArcGIS的洪水淹没分析与三维模拟
  3. php引用类型变量,PHP变量的值类型和引用类型
  4. 如何建设数字中国?人民日报推出四个整版观察
  5. Oracle官方文档网址收录
  6. Linux(10)--上一级路径、nano、切换su、查看用户、修改目录的读写权限
  7. 从xml中返回的对象,和new 返回的对象时不同的。
  8. 【华为云网络技术分享】HTTP重定向HTTPS配置指南
  9. 游戏玩家都不爱 Windows 11?网友:没必要,Windows 10 足矣
  10. Win10搭建python3环境
  11. canvas drawImage() 方法绘制图片与视频
  12. GDP代码学习——GUX
  13. VB 源码 产生任意数之间随机数,支持负数
  14. SQL Server的下载和安装
  15. 偏微分方程数值解—ADI格式求解二维抛物型方程
  16. 吃透空洞卷积(Dilated Convolutions)
  17. Android开发关于调用摄像头黑屏没反应的问题
  18. Html 使用svg图标、iconfont的使用方法
  19. ISO8583报文签到怎么拿到服务器批次号和流水号
  20. Fortran进行t检验后使用GrADS画打点图

热门文章

  1. 电压放大倍数公式运放_运放电路:同相放大还是反相放大?
  2. python运算符讲解_3.Python运算符详解
  3. php bindresult,mysqli_stmt::bind_result
  4. 安卓抓包工具 linux,Android 下使用tcpdump网络抓包方法
  5. Qt中qDebug()技巧初探
  6. hdu5373(整除11)
  7. POJ 1703 Find them, Catch them(并查集高级应用)
  8. fpga实战训练精粹pdf_tensorflow版PSENet 文本检测模型训练和测试
  9. 8s pod 查看 的yaml_Kubernetes入门到实战(五)深入浅出详解Pod
  10. Entity Framework-02