• 前端安全之加解密种类与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

  • 相关阅读:
    Linux命令-压缩解压命令:gzip、gunzip
    Linux命令-用户管理命令:useradd,passwd,who,w
    Linux命令-帮助命令:help
    Linux命令-帮助命令:whatis,apropos
    Linux命令-帮助命令:man
    Linux命令-文件搜索命令:grep
    Linux命令-文件搜索命令:whereis
    Linux命令-文件搜索命令:which
    Linux命令-文件搜索命令:locate
    Linux命令-文件搜索命令:find
  • 原文地址:https://www.cnblogs.com/terrymin/p/15735083.html
Copyright © 2020-2023  润新知