美文网首页
学习Base64、MD5、HMac加密

学习Base64、MD5、HMac加密

作者: 远航Yang | 来源:发表于2019-04-01 17:29 被阅读0次

    一、Base64

    二、MD5

    三、HMac

    一、1.Base64简单说明

        描述:Base64可以成为密码学的基石,非常重要。

        特点:可以将任意的二进制数据进行Base64编码

        结果:所有的数据都能被编码为并只用65个字符就能表示的文本文件。

        65字符:A~Z a~z 0~9 + / =

        对文件进行base64编码后文件数据的变化:编码后的数据~=编码前数据的4/3,会大1/3左右。

    2.Base64编码原理

        1)将所有字符转化为ASCII码;

        2)将ASCII码转化为8位二进制;

        3)将二进制3个归成一组(不足3个在后边补0)共24位,再拆分成4组,每组6位;

        4)统一在6位二进制前补两个0凑足8位;

        5)将补0后的二进制转为十进制;

        6)从Base64编码表获取十进制对应的Base64编码;

    处理过程说明:

        a.转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。

        b.数据不足3byte的话,于缓冲区中剩下的bit用0补足。然后,每次取出6个bit,按照其值选择查表选择对应的字符作为编码后的输出。

        c.不断进行,直到全部输入数据转换完成。

        d.如果最后剩下两个输入数据,在编码结果后加1个“=”;

        e.如果最后剩下一个输入数据,编码结果后加2个“=”;

        f.如果没有剩下任何数据,就什么都不要加,这样才可以保证资料还原的正确性。

    二、MD5加密

    1、什么是MD5?

    全称是Message Digest Algorithm 5,译为“消息摘要算法第5版”

    效果:对输入信息生成唯一的128位散列值(32个字符)

    MD5特点:

    输入两个不同的明文不会得到相同的输出值

    根据输出值,不能得到原始的明文,即其过程不可逆

    MD5的应用

    由于MD5加密算法具有较好的安全性,而且免费,因此该加密算法被广泛使用

    主要运用在数字签名、文件完整性验证以及口令加密等方面

    三、HMAC加密

        //使用一个秘钥加密数据做两次散列

        //秘钥来自服务器,比起MD5加盐安全得多,MD5本地的盐可能会被泄露

        //1、发一个账号,服务器生成一个key(秘钥),服务器保存帐号,账号对应的key,key给客户端进行明文加密(HMAC密码),发给服务器保存,注册成功。

        //2、使用已经存在的key(秘钥)对帐号加密,带着key、HMAC密码、帐号区服务器验证。

        //3、 办:(1)、发帐号给服务器,请求一个key(2)、加密验证,通过把key保存在本地。

    //    key泄漏只是一个用户的。

        //4、使用32位字符串加密,模拟登录,32位HMAC密码+发送时间 服务器验证 两次验证(收到时间 往前1-2分钟)

    相关文章

      网友评论

          本文标题:学习Base64、MD5、HMac加密

          本文链接:https://www.haomeiwen.com/subject/jtavbqtx.html