zoukankan      html  css  js  c++  java
  • 前端加密算法积累【不定期更新】

    1,AES加解密

    AES,Advanced Encryption Standard,高级加密标准。采用对称密钥,秘钥长度支持128,192,256。是一种分组密码,说是为了取代DES,DES之前统治20多年,因为其被打败过几次,而且计算速度很慢,所以被AES取代了。

    有四种类型:ECB,CBC,CFB,OFB。AES的加解密算法有很多轮的重复和变换。

    加密算法工作过程比较复杂,更考验人的数学功底,但是需要知道的是,加解密算法的过程是不叫复杂且消耗性能的,所以一般能绕过就绕过加解密吧,除非安全必需。

    2,RSA加解密

    非对称加密算法,一般证书服务会用到。既用于加密,也用于数字签名。是三个发明者的名字首字母命名。是目前最流行的公开密钥算法。RSA的密码难于破解,它有一对密码PK(公钥)。SK(私钥)。

    PK和SK是不同的密钥,PK是公开的,SK是保密的,加解密算法也都是公开的,不能根据PK计算出SK。

    实用场景:比如后台接口给你个PK,数据经过加密后传递数据给后台,后台通过SK进行解密获取。

    那么PK的截取就显得很重要,来看这样一种情况:A和B在通信,C进行中间的攻击,所以公钥的分配显得尤为重要。

    可以看出,A和B都不知道C在中间监听,可以用数字证书来防止类似攻击。速度一直是RSA的缺陷,所以一般只用于少量数据的加密。

    一般是酱紫工作的:A和B都有一对PK和SK,互相告知对方的PK,然后通过自己的SK进行解密。其他人就算收到PK,没有SK也是没办法解密的。这种情况,上面C也可以劫持双方的PK,进行数据劫持。

     【敲黑板】:后台加密两种算法都尝试了下,发现使用rsa加密速度远远落后于aes加密,大概八倍多速度差,所以最终还是选择了使用aes加密方式!

    数字证书:网络通信过程中标志通讯身份信息的一串数字,可以理解为在数字身份证上的一个签名,可以在网上用它来识别对方身份。数字证书绑定了公钥和持有者的真实身份,类似于现实生活中的身份证。

    【不定期更新】

  • 相关阅读:
    eclipse设置
    设计模式-单例模式
    java学习--基础知识阶段性总结--基础面试题
    java学习--基础知识阶段性总结--API、集合
    java学习--基础知识阶段性总结--74条
    React官方文档之React 理念
    React官方文档之组合 vs 继承
    React官方文档之状态提升
    Dynamic HTML权威指南(读书笔记)— 第一章 HTML与XHTML参考
    ExtJs3带条件的分页查询的实现
  • 原文地址:https://www.cnblogs.com/tangjiao/p/10272574.html
Copyright © 2011-2022 走看看