zoukankan      html  css  js  c++  java
  • Base64和3DES算法

    Base64加密算法 
    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息。它的优点是算法效率高,编码出来的结果比较简短,同时也具有不可读性。

    3DES加密算法

    要理解3DES,就必须先搞懂什么是DES。DES是美国一种由来已久的加密标准,它的工作原理是将数据按照8个字节一段进行加密或解密,从而得到一段8个字节的密文或者明文。之后按照顺序将计算所得的数据连在一起即可。这里需要注意的是,由于DES加密解密时要求数据长度必须为8个字节的倍数,因此当数据长度不足时必须先进行数据填充,这里使用的填充算法根据系统的不同可能会略有不同。

    DES算法有两种工作模式,ECB(电子密本方式)和CBC(密文分组链接方式)

    加密步骤如下:

    1)首先将数据按照8个字节一组进行分组得到D1D2……Dn(若数据长度不是8字节的整数倍,先进行数据填充)

    2)第一组数据D1与初始化向量I异或后的结果进行DES加密得到第一组密文C1

    3)第二组数据D2与第一组的加密结果C1异或以后的结果进行DES加密,得到第二组密文C2

    4)之后的数据以此类推,得到Cn

    5)按顺序连为C1C2C3……Cn即为加密结果。

    解密是加密的逆过程,步骤如下:

    1)首先将数据按照8个字节一组进行分组得到C1C2C3……Cn

    2)将第一组数据进行解密后与初始化向量I进行异或得到第一组明文D1(注意:一定是先解密再异或)

    3)将第二组数据C2进行解密后与第一组密文数据进行异或得到第二组数据D2

    4)之后依此类推,得到Dn

    5)按顺序连为D1D2D3……Dn即为解密结果。

    这里注意一点,解密的结果并不一定是我们原来的加密数据,可能还含有你补得位,一定要把补位去掉才是你的原来的数据。

    OK,最后我们来说说3DES。3DES又称Triple DES,顾名思义就是三次DES算法。比起最初的DES,3DES更为安全。它是以DES为基本模块,通过组合分组方法设计出的分组加密算法。设Ek()和Dk()代表DES算法的加密和解密过程,k代表DES算法使用的密钥,P代表明文,C代表密文,则3DES加密解密的过程可表示为:

    C=Ek3(Dk2(Ek1(P)))

    P=Dk1(Ek2(Dk3(C)))

    这里可以k1=k3,但不能k1=k2=k3(如果相等的话就成了DES算法了)

  • 相关阅读:
    user-agent
    java8中的stream().filter()的使用和Optional()
    hibernate中复合主键的使用
    HikariCP和spring-boot-devtools了解
    springboot与springcloud的版本问题
    libSVM简介及核函数模型选择
    支持向量机:Numerical Optimization,SMO算法
    SVM计算过程,对偶形式,核函数
    SVM入门——线性分类器的求解,核函数
    【转】SVM入门(一)SVM的八股简介
  • 原文地址:https://www.cnblogs.com/guoziyi/p/7908439.html
Copyright © 2011-2022 走看看