MD5加密

MD5加密

基本概念信息

**首先什么叫做加密?**加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知道解密的方法,仍然无法了解信息的内容。

**对称加密?**对称加密的加密和解密用的是同一个密钥。

**非对称加密?**非对称加密的加密和解密用的是不同的密钥。凯琳现在想把一段数据传递给鲍勃,但是如果凯琳在网上使用明文传输,她担心她的这段信息会被别人获取到,所以怎么办呢?凯琳可以先得到鲍勃的公钥,然后使用鲍勃的公钥对明文进行一次加密,加密成密文,最后鲍勃获取到密文的时候,再使用自己的私钥解密,这样就可以了。

摘要算法?摘要算法也称为哈希算法,散列算法,可以将任意长度的数据转换成一个定长的,不可逆的数字。什么叫做定长呢?就是你的数据不管是多长,最后转化为摘要之后都是定长;什么叫做不可逆的数字?摘要算法不像对称算法和非对称算法,因为他们加密之后都是可以被解密的,但是摘要算法加密之后是不能够通过解密获取原文的,它的加密是不可逆的。

只要原文不同,计算的结果必然不同(几乎不用考虑重复的情况)。摘要算法用于对比信息源是否一致,因为只要数据源发生变化,得到的摘要信息必然不同,通常用于签名校验。

消息摘要算法的特点:

  • 无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。
  • 消息摘要不是真正的随机,因为用相同的消息求两次摘要,其结果必然相同。
  • 消息摘要函数是无陷门的单向函数,即只能进行正向的信息摘要,而无法从摘要中恢复出任何的消息,甚至根本就找不到与原信息相关的信息。

常见的摘要算法有:MD5,SHA-1,MAC,CRC等。

广泛应用于校验数据的完整性和敏感信息的传输和保存。

MD5算法:MD5信息摘要算法,一种广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。

**什么叫做碰撞?**我们使用MD5加密的密文是无法被还原回来的,但是如果我们有一个保存常见密码和MD5密文映射关系的加密库,那么我们就可以通过对照密文,进而知道对应的原文是什么。

基本应用

**md5-min.js和md5.js的区别?**md5.js是格式良好的js,是给开发人员开的;md5-min.js是压缩版的js,是给浏览器看的。

md5前端加密如下:

<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script type="text/javascript" src="./md5.js"></script>
        <script type="text/javascript">
        	/**
        	 * md5加密之后   admin   =>   21232f297a57a5a743894a0e4a801fc3
        	 * */
        	console.log("md5    =>     "+hex_md5("admin"));
        	/**
        	 * 加盐(MD5没有办法通过算法进行解密,但是可以被暴力破解【彩虹表】,不够安全,彩虹表其实就是一个明文与密文
        	 * 映射的数据库表)
        	 * 盐就是一个特定的字符串(自己指定)的,用来和加密后的内容进行混合,混合后的内容再次进行md5加密,数据就更安全
        	 * 比如:
        	 * 		admin			salt => 0x3d1eaaa
        	 * 		让文本和salt进行混合(随意)
        	 * 		admin0x3d1eaaa
        	 * 		然后对混合后的文本进行md5加密操作,这样就算我们的密文被破解了出来,但是它也不知道我们的明文是什么
        	 * */

        </script>
    </head>
    <body class="index">
        我是body
    </body>

</html>

MD5算法和RSA算法加密的异同

首先MD5加密可以确保,只要原文内容不同,那么最后加密的结果一定是不同的。并且每个明文,它加密后的密文都是固定的,都是不会发生变化的。但是MD5加密无法防止别人的彩虹表碰撞,就是它可能会有一个常见明文和MD5密文的映射表,所以如果我们的密码设置的是弱密码,可能会被人破解。并且MD5加密是单向的,我们只能把明文加密成MD5密文,但是却不能方向把MD5密文解析成明文。
RSA加密每次加密的结果都是不一样的,并且RSA加密是双向的,即我可以先加密获取密文,然后再解密密文获取明文。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr-X~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值