加密

作者: Anna哟 | 来源:发表于2018-04-16 18:29 被阅读0次

    随着互联网的发展 信息安全越来越重要 用户的隐私保护尤为的重要

    简单了解一下加密 仅作为记录

    做不到绝对的安全 只有相对安全  尽量让破解成本大于破解所获得利益就可以了

    加密有很多种加密方式 ,数据的本制都是二进制  加密也就是对二进制的处理:

    I.HAS算法  不可逆

      安全散列算法(Secure Hash Algorithm,缩写为SHA)能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法.不同数据加密之后是定长度的,哈希算法是取数据的一部分[被称为数据指纹] 不可逆

    应用场景:

        校验 正版 盗版 例如:盗版的跟原版的二进制文件是不一样的 那么哈希值也会天壤之别

      散列碰撞:不同数据得到的哈希值一样 出现一样的概率无法计算 因为毕竟32位能表示的是有限的 但是对于客户端用是够用的

      用户密码加密:选用什么加密 服务器是没有必要知道用户密码 所以不需要用对称和非对称 选用哈希就可以了 因为同样的数据哈希值是一样的 

      直接MD5 反查询很容易就查到了 可以加盐 如果盐泄露了 [为了防止盐泄露 逆向用很容易就能定位到盐  可以用随机盐]

      最终方案:可以选用HMAC加密 包含了随机盐 

            使用秘钥加密并且做了2次散列 实际开发中 秘钥来自服务器并且每个账户对应一个秘钥 这个秘钥可以用RSA进行再次加密

      如果黑客拦截到这段加密后的32位字符串 模拟用户登录 我们可用HTTPS双向验证 HMAC密码后方追加一个来自服务器的时间戳并且进行一次MD5 发送给服务器 服务器进行验证 验证范围在这一分钟和上一分钟时间之内通过 有效登录控制在2分以内 所以大大提高了安全性 

    II.对称  AES DES 3DES

          密钥加密--->密文

          密钥解密--->明文

    III.非对称 RSA 非对称的安全性更高  运算算出来的 所以性能差 

          公钥加密 私钥加密

          私钥加密 公钥解密

    BASE64 是一种编码 把数据转换成字符串

      Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。

    Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,需要解码后才能阅读。

    相关文章

      网友评论

        本文标题:加密

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