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加盐的目的,增加被破解的难度。
密码学的应用安全,是建立在破解所要付出的成本远超出能得到的利益上的。
Android 网络交互之MD5为什么要加盐的更多相关文章
- android网络交互之DNS优化知识整理
android网络交互之DNS优化知识整理 之前的工作中,经常会遇到DNS解析出问题导致网络交互的操作无法正常进行. UnknownHostException 在很多的移动开发过程中,与服务端的交互的 ...
- android 网络交互
一. 在Android中,发送和处理http请求实在太常见了,以至于我们经常需要写这方面的代码. Android中网络交互的代码不能在UI线程中执行,只能在额外的子线程中执行. 我一般的做法是通过创建 ...
- MD5 加密 以及 加盐加密
这是MD5加密 - (NSString *)MD5Hash { const char *cStr = [self UTF8String]; unsigned char result[16]; CC_M ...
- Android 网络交互之下载断点续传
一.概述 1.概念 断点续传主要用于下载,本文也主要讲述下载时的断点续传的逻辑思路.顾名思义,断点续传就是下载从中断的地方继续下载,一般是因为暂停或者网络故障导致的下载中断,当恢复下载的时候可以从已经 ...
- Android 网络交互之移动端与服务端的加密处理
在开发项目的网络模块时,我们为了保证客户端(Client)和服务端(Server)之间的通信安全,我们会对数据进行加密. 谈到网络通信加密,我们可以说出:对称加密,非对称加密,md5单向加密,也能提到 ...
- Servlet和Android网络交互基础(3)
在上一章中採用了最简单的创建service端代码方式,但在实际开发中一般都会採用比較成熟的框架.以下是完整的maven+spring mvc 创建service的方式 下载安装Eclipse 和jdk ...
- vue项目使用MD5进行密码加盐
首先给项目安装MD5模块:npm install --save js-md5 使用方法有两种: 使用方法1: 在需要使用的项目文件中引入MD5:import md5 from 'js-md5'; 使 ...
- MD5—加密,加盐
MD5的参考盐值:String salt = "212*)()()**()^&UYGbakdkj " ; MD5—加密工具类 package com.demo.tools; ...
- md5,md2加密加盐
数组是没有重写object的toString()方法.byte[].toString()
随机推荐
- c++之构造函数学习
#include<stdio.h> class Test { private: int i; int j; int k; public : ...
- [Swust OJ 581]--彩色的石子(状压dp)
题目链接:http://acm.swust.edu.cn/problem/0581/ Time limit(ms): 1000 Memory limit(kb): 65535 Descriptio ...
- Git远程仓库的使用(三)
1)git remote add : 添加远程仓库 git remote add origin git@github.com:用户名.仓库名.git 2) git push –u origin mas ...
- Python学习笔记 (2) :字符串输出、操作、格式化和日期、时间格式化
一.字符串输出及运算 1.常用输出格式及方法 ')#单引号 ")#双引号 """)#三个引号 1234567890 1234567890 1234567890 ...
- Altium designer 10如何设置标题栏
一.修改设置 1.执行Design-Document Option,打开文档属性对话框,设置其中title等参数. 2.执行Place-Text String,按TAB键,将Text属性中设置为&qu ...
- 阿里云ECS每天一件事D2:配置防火墙
在linux中配置防火墙是一件比较有风险的事情,尤其是在ECS中,一个不当心的操作,可能就会需要重置服务器. 包括阿里云的官方建议,不要配置防火墙,没有必要什么的吧啦吧啦…… (http://bbs. ...
- Qt在Linux环境下应用程序字体模糊的解决方法(先改成使用默认字体,然后使用qtconfig配置)
这两天一直在用Qt实现一个跨平台的软件.软件之前在Windows上编写的,后来放到里Ubuntu 10.10下编译.程序运行时遇到一个很棘手的问题,界面文本非常模糊.后来在网上查阅了好几天的资料,经历 ...
- DataTabe对象的例子
前: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DataTable对象 ...
- 隐藏nginx 版本号信息(转)
为了安全,想将http请求响应头里的nginx版本号信息隐藏掉: 1. nginx配置文件里增加 server_tokens off; server_tokens作用域是http server loc ...
- cocos2dx中的其他层
在cocos2dx中,CCLayer默认是黑色的,但是有时候需要有其他颜色北京的图层,那么就需要用到CCLayerColor 如下代码: ccColor4B color =ccc4(255, 0, 0 ...