加密

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

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

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

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

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编码具有不可读性,需要解码后才能阅读。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容