zoukankan      html  css  js  c++  java
  • 对称和非对称加解密

    对称加密算法
    加密过程:
            将明文分成N个组,然后对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。
    优点:
            算法公开、计算量小、加密速度快、加密效率高
    缺点:
            交易双方都使用同样钥匙,安全性得不到保证
            密钥管理困难,尤其是在分布式网络中
    常用算法:
            DES、3DES(TripleDES)、AES、RC2、RC4、RC5和Blowfish


    非对称加密算法
    使用过程:
              乙方生成两把密钥(公钥和私钥)
              甲方获取乙方的公钥,然后用它对信息加密。
              乙方得到加密后的信息,用私钥解密,乙方也可用私钥加密字符串
              甲方获取乙方私钥加密数据,用公钥解密
    优点:
             更安全,密钥越长,它就越难破解
    缺点:
             加密速度慢
    常用算法:
              RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)

    对称 (des、3des、aes)

         DES:
               DES算法 再大多运用在 如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等领域

               DES算法的入口参数有三个:Key、Data、Mode。
               Key为8个字节共64位,是DES算法的工作密钥;
            Data也为8个字节64位,是要被加密或被解密的数据;
               Mode为DES的工作方式,有两种:加密或解密。
               DES算法是这样工作的:
                 如Mode为加密,则用Key 去把数据Data进行加密, 生成Data的密码形式(64位)作为DES的输出结果
                      如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。
                在通信网络的两端,双方约定一致的Key

          3DES
               在 DES 的基础上,使用三重数据加密算法,对数据进行加密,这样来说,破解的概率就小了很多
               使用 3 条 56 位的密钥对数据进行三次加密。3DES是 DES 向 AES 过渡的加密算法
               K1、K2、K3决定了算法的安全性,若三个密钥互不相同,本质上就相当于用一个长为168位的密钥进行加密。.它在对付强力攻击时是比较安全的。若数据对安           全性要求不那么高
              K1可以等于K3。这种情况下密钥的有效长度为112位


          AES
                高级加密标准,是下一代的加密算法标准,速度快,安全级别高
               AES算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个,AES是一个迭代的、对称密钥分组的密码,它可以使用128、            192和256位密钥, 并且用128位(16字节)分组加密和解密数据

    算法                   Key                                       位数                                 是否可逆                             其它
    MD5              没有Key,                           有区别16位和32位,                    不可逆                               (无)
    SHA                 (?)                                   (?)                                不可逆                               (无)
    RSA           有(公Key,私KEY)                    (?)                                可逆                                公、私Key采用不同的加密算法
    DES3                 有                                        (?)                                可逆                                    (无)
    AES                   有                                        (?)                                可逆                                     (无)
    BASE64         没有KEY                                 (?)                                可逆                                     (无)

    哈希函数:MD5,SHA 是没有密钥的,相当与指纹的概念,因此也是不可逆的;
    md5是128位的,SHA有不同的算法,有128,256等位。。。如SHA-256,SHA-384
    Base64,这更加不属于加密算法的范围了,它只是将byte[]数组进行了转换,为什么要转换呢?就是因为很多加密后的密文后者一些特殊的byte[]数组需要显示出来,或者需要进行传递(电子邮件),但是直接转换就会导致很多不可显示的字符,会丢失一些信息,因此就转换位Base64编码,这些都是可显示的字符。所以转换后长度会增加。它是可逆的

    再就是 3DES,DES 这才是加密算法,因此也是可逆的,加解密需要密钥,也就是你说的key

    最后是 RSA ,这是公钥密码,也就是加密和解密密钥不同,也是可逆的。

    非对称 (数字证书ca&https)
    非对称加密DH为了更好的区分明文和密文,用【AA】代表AA被加密,AA 代表正常未加密
          client 发出请求
          server 收到请求,并自己生成一对密钥,即 公钥S 和 私钥S
          server 把生成的 公钥S 传递给 client (除了 公钥S ,还有很多额外信息)
          client 收到 公钥S 后进行判断,若无效,弹出警告,否则生成一串随机数,我们称之为 私钥C ,然后 client 用 server 传过来的 公钥S 对该随机数加密,形成【私钥C】
          client 把【私钥C】传递给 server
          server 收到【私钥C】,用 私钥S 把【私钥C】解密成 私钥C,然后把需要传递的数据用 私钥C 进行加密
          server 把【数据】传递给 client
          client 收到【数据】,用 私钥C 解密,完成一波收割


    对称加密是指加密和解密用一致的密钥,特点是快
    非对称加密是指密钥区分公钥和私钥,公钥加密,私钥解密(私钥好比唯逐个把钥匙,公钥好比锁,钥匙只有一把,但锁可以有很多,被锁头锁上的数据全天下只有一把私钥才能 单开),特点是安全,但是慢
    这回理解了吧,上述方式缺点是 慢,所以 https 的流程综合了对称加密和非对称加密的优点,利用非对称加密的安全性来加密那一串随机数--私钥C,利用对称加密的快捷性来加
    密报文,总体来说就是把真正加密解密的密钥(私钥C)用公钥S和私钥S来加密,很灵性啊。

    利弊

    aes/des加密速度快,适合大量数据,des容易破解,一般用3重des,后来又出现了更快更安全的aes
    rsa是公钥加密,速度慢,只能处理少量数据,优点是公钥即使在不安全的网络上公开,也能保证安全
    常见情况是双方用rsa协商出一个密钥后通过aes/3des给数据加密

    群交流(262200309)
  • 相关阅读:
    eclipse导入基于maven的java项目后没有Java标志和没有maven Dependencies有解决办法
    centOS6.5 安装后无法启动无线上网
    centOS6.5 关闭关盖待机
    centOS6.5 usr/src/kernels下为空
    python求两个列表的并集.交集.差集
    二叉树遍历
    python实现单链表的反转
    关系型数据库和非关系型数据库的区别和特点
    python 实现快速排序(面试经常问到)
    golang 切片和map查询比较
  • 原文地址:https://www.cnblogs.com/webster1/p/8459764.html
Copyright © 2011-2022 走看看