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使用
    非对称加密
  • 相关阅读:
    WCF 第二章 契约
    WCF 第二章 契约 两个单向契约VS一个双向契约
    WCF 第二章 契约 数据契约等效
    WCF 第二章 契约 双向操作
    WCF 第二章 契约 服务契约
    Java环境变量配置(Mac)
    java使用document解析xml文件
    使用JDOM解析xml文档
    使用SAX解析xml文档
    sharepoint 2007服务器场迁移到 64 位环境 ^
  • 原文地址:https://www.cnblogs.com/zh-ch/p/13028687.html
Copyright © 2011-2022 走看看