• 前端安全之加解密种类与HTTPS加密原理(二)


    加密算法分类:常用加密算法可以分为单向加密和双向加密: 前端加解密种类深入浅出HTTPS 
    • 单向加密:只提供单向加密不能解密,不可逆的过程。通常用来存储用户名和密码,直接从前端传输来存储到数据库中。如MD5
    • 双向加密:又分为对称性加密算法和非对称性加密算法。
     
    一  对称加密:是指加密和解密都用同一份密钥。如下图所示:

    AES 的意思是“高级加密标准”(Advanced Encryption Standard),密钥长度可以是 128、192 或 256。它是 DES(Data Encryption Standard)算法的替代者,安全强度很高,性能也很好,而且有的硬件还会做特殊优化,所以非常流行,是应用最广泛的对称加密算法。DES对称加密     AES对称加密

    二 非对称加密:对应于一对密钥,称为私钥和公钥,用私钥加密后需要用公钥解密,用公钥加密后需要用私钥解密。如下图所示:

     非对称加密算法的设计要比对称算法难得多,在 TLS 里只有很少的几种,比如 DH、DSA、RSA、ECC 等。RSA非对称加密

     对称加密与非对称加密区别:对称加密的优点是运算速度快,缺点是互联网环境下无法将密钥安全的传送给对方。非对称加密的优点是可以安全的将公钥传递给对方,但是运算速度慢。

    三 MD5(Message-Digest-Algorithm)加密算法:属于Hash算法一代,是一种单向加密算法,可以将输入的信息加密转换为128位固定长度的散列值,用于检验数据传输过程中的完整性。

    功能:

    • 输入任意长度的信息,经过处理,输出都是128位的信息值
    • 不同的输入对应的输出一定不同,保证唯一性

    争议:

    • MD5属不属于加密算法,因为只可以加密,无法获得密码原文,只能属于算法。
    • 另一种观点,正因为看不到原文,使得原文得到加密处理。
    • 个人观点:对于公司的用户,采用MD5是可以放心的,第一,对于黑色截获MD5后很难破解。第二,对于商家内部,只能获得用户加密后的密文,无法看到用户的真实密码,这也是对用户信息的一定保护。

    MD5的优势:

    • 防止被篡改,在传输过程中一旦被串改,那么计算出的MD5值一定不同。
    • 计算速度快。加密速度快,不需要秘钥。
    • 检查文件的完整性,一旦文件被更改,MD5值也是不同的。
    • 防止看到明文,公司存放密码存放的是MD5值。
    • 防止抵赖,用于数字签名,一旦用户的文件被第三方MD5加密,若以后A说这个文件不是他写的,那么当用文件MD5后获得的签名一致,可以确认。

    MD5的实现原理:

    • 填充:将输入信息进行512求余分组,若不等于448,那么进行填充 1 和0,一个1 N个0。最后的数据就为N*512+448
    • 记录信息长度:将得到的信息用64位存储填充之前的信息长度,这样448+64=512,总信息为N+1个512
    • 以四个常数ABCD与每组512位进行函数运算,最后输出的结果就是4组32位的常数。拼接得到MD5码

    MD5的缺点:

    • 作为一种散列算法,虽然很难发生散列碰撞,但是经过证实,仍然存在两种不同数据会发生碰撞。
    • MD5的安全性:将用户的密码直接MD5后存储在数据库是不安全的。第一,用户普遍习惯用容易记忆的密码,生日,手机号等,黑客容易破译此类密码。这也是加盐值的一个原因。第二,直接MD5存入数据库,若数据库被破解,通过MD5反查会查到密码,需要随机盐值的配合。
    • 考虑到多数人所使用的密码为常见的组合,攻击者可以将所有密码的常见组合进行单向哈希,得到一个摘要组合,然后与数据库中的摘要进行比对即可获得对应的密码。这个摘要组合也被称为rainbow table。

    四 Https加密原理https://zhuanlan.zhihu.com/p/43789231

    • 对称加密+非对称加密方式:可以被中间人攻击(浏览器无法确认收到的公钥是不是网站自己的)
    • 数字证书:CA机构颁发的“身份证”就是数字证书。防止数字证书被篡改就是数字签名。 
    相关阅读:
    AES加密: 当模式是CBC的时候必须设置偏移量。AES加解密使用方法理解:https://blog.csdn.net/vieri_32/article/details/48345023

  • 相关阅读:
    CSS中position小解
    position
    mac默认安装postgresql, 如何让postgresql可以远程访问
    The data directory was initialized by PostgreSQL version 9.6, which is not compatible with this version 10.0.
    active admin gem error
    psql 无法添加超级用户
    ubuntu 15.04 安装Balsamiq Mockups 3
    Rails html 写public里图片的路径
    rails c 历史命令
    undefined local variable or method `per' for []:ActiveRecord::Relation
  • 原文地址:https://www.cnblogs.com/terrymin/p/15735083.html
Copyright © 2020-2023  润新知