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算法了)

最新文章

  1. Red Hat5.5 install Generic mysql-5.7.10
  2. Linq学习笔记(转)
  3. mapreduce job提交流程源码级分析(三)
  4. css去掉a标签点击后的虚线框
  5. Unrecognized Windows Sockets error: 0: JVM_Bind异常
  6. [转] Linux TCP/IP网络小课堂:net-tools与iproute2大比较
  7. 一步步教你如何源码编译Recovery
  8. HDU 4513 哥几个系列故事——形成完善II manacher求最长回文
  9. Swift分割字符串
  10. sql操作一般函数
  11. ClickOnce一项Winform部署
  12. Object类(根类)
  13. for each....in、for in、for of
  14. poj2114 寻找树上存在长度为k点对,树上的分治
  15. (转)Applications of Reinforcement Learning in Real World
  16. chromium浏览器开发系列第三篇:chromium源码目录结构
  17. win8下everything无法使用的解决方法
  18. OpenCL入门:(三:GPU内存结构和性能优化)
  19. MY97默认只能选择昨天的时间
  20. SpringBoot下的值注入

热门文章

  1. sql 2008查看进程情况和对应语句,检查死锁进程
  2. javascript is ths best computer language
  3. express中 使用session与cookie
  4. NOIP day1 玩具谜题
  5. JS获取浏览器地址栏的多参数值的任意值
  6. Dealing with exceptions thrown in Application_Start()
  7. bzoj 1233: [Usaco2009Open]干草堆tower 【想法题】
  8. 解决“/bin/bash^M: bad interpreter: No such file or directory”
  9. shell zip和unzip压缩和解压,压缩效率
  10. java中四种访问修饰符区别及详解全过程