Android 网络交互之MD5为什么要加盐
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为什么要加盐相关推荐
- JSON在Android网络交互中的使用方法
在Android网络交互中使用到JSON传输接收数据. JSONObject为键值对形式的数据,内部使用LinkedHashMap实现.键的类型固定为String,值可取的类型在JSONObject, ...
- MD5工具类 加盐加密 及编码
titls: MD5工具类加密 date: 2018/11/12 10:03:42 categories: 开发module import java.security.MessageDigest; i ...
- Java实现MD5加密及验证(两种方式,加盐md5与未加盐md5)
一.加盐MD5加密工具 package com.dimpt.base.util;import java.io.UnsupportedEncodingException; import java.sec ...
- 数据库密码MD5加密、加盐的理解
一.MD5加密 1)为什么?如果数据库里用户账号的密码没有加密处理,如果数据库被盗,密码被知道导致用户数据被窃取,这是很危险的.数据库里存放密码的密文会安全一点,密码安全性高的话破解也需要时间. 2) ...
- MD5加密、加盐和去盐
前言 在程序里有一些敏感信息需要加密.下面列一下常见的加密: 散列加密 MD5是不可逆.不能解密.速度快等特点. 对称加密法:根据相同的钥匙,进行加密和解密 大数据量的加密和解密. 不对称加密法:两把 ...
- python md5加密和加盐_python的md5加密与加盐
#md5加密是不可反解的 import hashlib #实例化对象 obj=hashlib.md5() #先创建一个md5的对象 #写入要加密的字节 obj.update("admin&q ...
- Android——网络交互,如何调用接口并且json解析json格式和pull解析xml格式
本菜鸟因为之前一直使用的是公司前辈封装好的类(网络接口调用超级方便有木有)完全没有想过有一天我会自己写,然后今天接触的时候一脸懵逼,然后今天花了一天时间终于研究好了:哈哈哈哈哈 二话不说先上代码: p ...
- md5生成一个加盐程序c语言,MD5在编程中的实现 (C语言)
在C语言中实现MD5算法 ------------------------------------------- */ #ifndef PROTOTYPES #define PROTOTYPES 0 ...
- 【项目】MD5加盐源码理解
1.shiro中主要的类 简单看一下即可,shiro是一个安全验证框架,相对Spring security使用更为简单.本篇文章使用的的md5加密和加盐是基于shiro框架. 复制代码 主要功能:认证 ...
最新文章
- 你还有学了三年建模的朋友吗?他有救了
- 有源淹没分析arcgis_基于ArcGIS的洪水淹没分析与三维模拟
- php引用类型变量,PHP变量的值类型和引用类型
- 如何建设数字中国?人民日报推出四个整版观察
- Oracle官方文档网址收录
- Linux(10)--上一级路径、nano、切换su、查看用户、修改目录的读写权限
- 从xml中返回的对象,和new 返回的对象时不同的。
- 【华为云网络技术分享】HTTP重定向HTTPS配置指南
- 游戏玩家都不爱 Windows 11?网友:没必要,Windows 10 足矣
- Win10搭建python3环境
- canvas drawImage() 方法绘制图片与视频
- GDP代码学习——GUX
- VB 源码 产生任意数之间随机数,支持负数
- SQL Server的下载和安装
- 偏微分方程数值解—ADI格式求解二维抛物型方程
- 吃透空洞卷积(Dilated Convolutions)
- Android开发关于调用摄像头黑屏没反应的问题
- Html 使用svg图标、iconfont的使用方法
- ISO8583报文签到怎么拿到服务器批次号和流水号
- Fortran进行t检验后使用GrADS画打点图
热门文章
- 电压放大倍数公式运放_运放电路:同相放大还是反相放大?
- python运算符讲解_3.Python运算符详解
- php bindresult,mysqli_stmt::bind_result
- 安卓抓包工具 linux,Android 下使用tcpdump网络抓包方法
- Qt中qDebug()技巧初探
- hdu5373(整除11)
- POJ 1703 Find them, Catch them(并查集高级应用)
- fpga实战训练精粹pdf_tensorflow版PSENet 文本检测模型训练和测试
- 8s pod 查看 的yaml_Kubernetes入门到实战(五)深入浅出详解Pod
- Entity Framework-02