MD5:
概念:
MD5是一种不可逆的消息摘要算法。为计算机安全领域广泛使⽤的一种散列函数,
用以提供消息的完整性保护。
效果:
把一个任意长度的字节串变换成⼀定⻓度的⼗六进制数字串。
目的是让⼤容量信息在⽤数字签名软件签署私⼈密钥前被"压缩"成⼀种保密的格式。
应用:
1、一致性验证:
    从网上下载⽂件,软件,各种资料的时候,有些文件会提供MD5对照信息。利⽤MD5校验软件来核对下载的⽂件,以此观测下载得到的文件与传送者是否相符。
   利用MD5算法来进⾏文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等⽅方⾯面

2、数字证书:
    对一段Message(字节串)产生fingerprint(指纹),以防止被"篡改”。举个例子,你将一段话写在一个叫readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的"抵赖",这 就是所谓的数字签名应用。
3、安全访问认证:
       用于操作系统的登陆认证上。当用户登录的时候,系统把⽤户输入的密码进⾏MD5 Hash运算,然后再去和保存在文件系统中的MD5值进⾏比较, 进⽽确定输⼊的密码是否正确。
    通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免⽤户的密码被具有系统管理员权限的用户知道。

2004年8月17日的美国加州圣巴拉的国际密码学会议上,来⾃自中国山东⼤学的王小云教授做了破译MD5、HAVAL-128、MD4和RIPEMD算法的报告,公布了MD系列算法的破解结果。宣告了固若⾦汤的世界通⾏密码标准MD5的堡垒轰然倒塌,引发了密码学界的轩然⼤大波 。
    那我们使用MD5还安全吗?这个不必担心,以下是理由:
    1、我们的牛⼈⺩同学做的成效是查找碰撞,并不是可以反推。MD5是⽤来获取信息摘要的,主要用途是防篡改。而这项工作很难做到篡改信息,并保持MD5不变。
    2、硬件设备要求特别高,并且程序得到的只是碰撞 ,如果你要根据已知文件,去构造一个相同MD5, 并且是内容不同的有效文件,更是难上难。
    3、MD5算法的使用不需要支付任何版权费⽤的,所以在一般的情况下(非绝密 应用领域)怎么都算得上是非常安全的了。

Base64

概念:
Base64是一种基于64个可打印字符来表示二进制数据的表示方法。Base64是一种编码方式。
效果:
Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码。
采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。
应用:
Base64主要用于将二进制数据转换为文本数据,方便使用HTTP协议等,是可逆的。处理文本数据的场合,表示、传输、存储一些二进制数据。包括MIME的email,email via MIME,在XML中存储复杂数据.
 
注意:base64的主要作用不是加密,而是用来避免“字节”中不能转换成可显示字符的数值。

MD5和Base64介绍与应用的更多相关文章

  1. Js中 md5 sha1 base64 加密

    js的3中加密方式: .sha1加密,加密性高 调用: var sha = hex_sha1(str); .base64加密 调用: var b = new Base64(); var str = b ...

  2. 【java】之 apache commons-codec 与Apache Digest demo实例,支持md5 sha1 base64 hmac urlencode

    使用commons-codec 进行加密的一些操作 package com.jiepu.ApacheDigest; import java.io.FileInputStream; import org ...

  3. IOS常见的加密方法,常用的MD5和Base64

    iOS代码加密常用加密方式 iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密.AES加密.BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文 MD5 iO ...

  4. python接口自动化测试二十七:加密与解密MD5、base64

    # MD5加密 # 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作 import hashlib def MD5(str): # 创建md5对象 hl ...

  5. 终端命令对字符串进行sha1、md5、base64、urlencode/urldecode

    sha1.md5.base64 mac $ echo -n foo|shasum 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 - $ 2c26b46b68ffc6 ...

  6. python的md5和base64加密

    在用jmeter测试接口时,有的请求参数会加密,例如,回流接口:http://ip:port/oms-gateway-datareflow-mq/orderReflow/tmsPracticeActi ...

  7. iOS常用加密方法(aes、md5、base64)

    1.代码 iOS常用加密方法(aes.md5.base64) .AES加密 NSData+AES.h文件 // // NSData-AES.h // Smile // // Created by 周 ...

  8. IOS开发之—— 各种加密的使用(MD5,base64,DES,AES)

    基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm ...

  9. iOS开发之—— 加密使用(MD5,base64,DES,AES)

    基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm ...

随机推荐

  1. 表单校验之datatype

    凡要验证格式的元素均需绑定datatype属性,datatype可选值内置有10类,用来指定不同的验证格式. 如果还不能满足您的验证需求,可以传入自定义datatype,自定义datatype是一个非 ...

  2. 教你看懂邮件头信息<转载>

    MIME对于邮件系统的扩展是巨大的,因为在MIME出现以前,信件内容如果要包括声音和动画,就必须把它变为ASCII码或把二进制的信息变成可以传送的编码标准,而接收方必须经过解码才可以获得声音和图画信息 ...

  3. c# 自己制作一个简单的项目倒计时器

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  4. JAVA的StringBuffer类

    StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存 ...

  5. iOS开发——常识swift篇&随机数获取

    随机数获取   arc4random()这个全局函数会生成9位数的随机整数   1,下面是使用arc4random函数求一个1~100的随机数(包括1和100)     var temp:Int = ...

  6. as3中使用stage ,root ,this 区别详解

    stage:最顶层舞台root:stage的下一级舞台,属于第二层舞台(继承自DisplayObject)this:当前的对象(如果是主时间轴上的this,那它就是root) 继承方面:Stage - ...

  7. Scala Error: error while loading Suite, Scala signature Suite has wrong version expected: 5.0 found: 4.1 in Suite.class

    准备给scala项目引入单元测试 <dependency> <groupId>org.scalatest</groupId> <artifactId>s ...

  8. Count Color

    Description Chosen Problem Solving and Program design as an optional course, you are required to sol ...

  9. C#打开指定目录,并将焦点放在指定文件上。相对路径(程序起动的目录)

    string basepath = AppDomain.CurrentDomain.BaseDirectory; string filepath = "logs\\Log.log" ...

  10. ES 父子文档查询

    父子文档的特点 1. 父/子文档是完全独立的. 2. 父文档更新不会影响子文档. 3. 子文档更新不会影响父文档或者其它子文档. 父子文档的映射与索引 1. 父子关系 type 的建立必须在索引新建或 ...