zoukankan      html  css  js  c++  java
  • 常见的加密方式总结

    对称加密

    DES

    DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法,加密速度快,但是容易破解安全性低。

    3DES(Triple DES)

    是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高,加强版DES。
    (DES算法比较简单,容易破解已不建议使用)

    AES(微信用的就是这种加密方式)

    秘钥长度最长256bit,加解密速度快.AES标准用来替代原先的DES
     
    优点:对称加密的优点是加解密速度快
    缺点:发送方和接收方都需要知道唯一的秘钥,秘钥容易泄露

    非对称加密

    RSA(最常见)

    对称加密,私钥加密公钥解密或相反,私钥可以推导出公钥反之不行
    RSA加解密速度慢不适合频繁和大数据的加解密
     
    还有一些其它场景常用的非对称加密

    ECC椭圆曲线加密(区块链钱包中最常使用)

    DSA

    带数字签名的算法
     
    优点:不需要泄露私钥,安全性高
    缺点:加解密计算量增大,速度慢
     
    使用对称加密时需要将秘钥公布给对方,这样就存在安全隐患。而使用非对称加密则很消耗性能,速度慢,请求频繁和数据量大的场景不适合。
    如何综合两者长处呢?
    我们可以结合AES 和 RSA一起使用,当需要公布AES秘钥时使用需求方的公钥将AES秘钥加密,解密报文时使用解密出来的AES秘钥解密,这样就能综合两种加密方式的优势。
     
    B需要保证获取AES密码的是A,所以加密的必须是A的公钥,这样就只有A可以解密获得AES密码,其他人即使获取到了带AES秘钥的密文,因为缺少私钥也没有办法获取到密码
     

    散列算法(hash算法)

    md5(最常使用)

    sha1,sha256(sha算法不同的版本)

    SHA主要适用于数字签名标准里面定义的数字签名算法。是一种比MD5的安全性强的算法

    hash算法因为其具有不可逆性,且输出长度固定。所以主要用于做摘要场景,也就是数字签名。
    虽然都已经被破解https://zh.wikipedia.org/wiki/SHA-1
    但是我们可以采用多遍无规则hash一样很难破解
    或者在保存登陆密码的场景可以加盐值再hash

     其它

    base64

    只是一种编码格式,主要用于编码http无法传输的数据格式。将无法传输的数据格式编码为base64格式的字符串传输。比如使用文本传输图片
     
    aes+rsa使用
    非对称加密
  • 相关阅读:
    Bootstrap 2.2.2 的新特性
    Apache POI 3.9 发布,性能显著提升
    SQL Relay 0.48 发布,数据库中继器
    ProjectForge 4.2.0 发布,项目管理系统
    红帽企业 Linux 发布 6.4 Beta 版本
    红薯 快速的 MySQL 本地和远程密码破解
    MariaDB 宣布成立基金会
    Percona XtraBackup 2.0.4 发布
    Rocks 6.1 发布,光盘机群解决方案
    精通Servlet研究,HttpServlet的实现追究
  • 原文地址:https://www.cnblogs.com/zh-ch/p/13028687.html
Copyright © 2011-2022 走看看