APP开发实战40-MD5介绍

12 加密介绍

12.1MD5简介

MD5即Message-Digest Algorithm5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法哈希算法)。MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。

MD5算法具有以下特点:

(1)根据最终输出的值,无法得到原始的明文,即过程是不可逆的。

(2)任意长度的数据,算出的MD5值长度都是固定的。

MD5主要用于需要对原始数据加密,但数据的使用方又不需要知道原始数据的场景,而且还可用于数据完整性校验:

(1)对登录密码进行加密

如用户使用APP注册的时候,APP把用户输入的密码进行MD5 Hash运算,然后发送给服务器保存。用户使用APP登录的时候,服务器把从APP接收到的MD5值和保存的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,服务器在并不知道用户密码的明码的情况下就可以确定用户登录的合法性。这可以避免用户的密码被具有系统管理员权限的人员知道。

(2)对文件名进行加密

在使用APP的时候,常需要在本地缓存一些文件,可以使用MD5对这些文件名进行加密,防止通过文件名了解文件的相关信息。

(3)数据完整性的校验

常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于下载该软件后,对下载的文件用专门的软件(如Windows MD5 Check等)做一次MD5校验,以确保获得的文件与该站点提供的文件为同一文件。

具体来说文件的MD5值就像是这个文件的“数字指纹”。每个文件的MD5值是不同的,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”就会发生变化。比如下载服务器针对一个文件预先提供一个MD5值,用户下载完该文件后,用算法重新计算下载文件的MD5值,通过比较这两个值是否相同,就能判断下载的文件是否出错,或者说下载的文件是否被篡改了。

为了增加解密的难度,有时会采用加盐的方式,就是在明文数据中加入一个随机字符串,如当前操作的时间字符串,然后再用MD5算法加密。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,535评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,178评论 19 139
  • 文/小辉儿 今天晚餐时,又和母亲聊起了往事。 想当初,母亲两次住院,我花尽了我和老公的积蓄。可是母亲从来没有和我说...
    子矜老师阅读 3,486评论 0 0
  • 心理学中有两种典型的现象,一种叫做泛化,是说当一件事情发生后,就认为他会反复发生,比如失败几次后就觉得自己还将失败...
    小钱很想家阅读 1,607评论 0 0
  • 上一章:隐婚总裁(2) “谁呀?”花姐问道。 “你往那看。”赵亮用手指着咖啡店外的一正打电话的姑娘说道,“看到那姑...
    廉子阅读 2,586评论 2 3

友情链接更多精彩内容