数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的。通常,自动取款机(Automated Teller Machine,ATM)都使用DEA。它出自IBM的研究工作,IBM也曾对它拥有几年的专利权,但是在1983年已到期后,处于公有范围中,允许在特定条件下可以免除专利使用费而使用。1977年被美国政府正式采纳。
DES的原始思想可以参照二战德国的恩格玛机,其基本思想大致相同。传统的密码加密都是由古代的循环移位思想而来,恩格玛机在这个基础之上进行了扩散模糊。但是本质原理都是一样的。现代DES在二进制级别做着同样的事:替代模糊,增加分析的难度。
DES的加密原理,是使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算。
类似于:A1ez8zw/wJ6QNPeMblfS+ZG37vG7h31Vj64liR4RidYOdstaJNwebOgEfJQSfyj/DbJ0ANobgmWRLaOhCEjne6d2kIcEV08U3f99SaN1xTk+iULsCkDbzWI8OR6c3X/2S/AnXeWTsUTaKKXX+naczN6nELYlG41ZobFn4bu2jNqWNy0b4fQYRwf8Y08QwsmYevtnMGUaxOZgFtqCpQI9Eiba1uIDWlnbxbFdnLOlDnOrBnfFMBoTztc+CfzfDr1rFwVHXOcoswE+x6LNSBmyauYj2qLTFxGj+9lnw/ozkNtRQgdLIITdDqNNKi9vN371x91OC9CkWigjOX0jzTxcXKUJocyu/kKFUx9Fo/LmNZ7SMINEL7CtJ9iEaeHd49o2wHSDRT4tOvQtEh6FKo/V3hwr54M+BWAbcnJVkh3OHcUl/AYMqDkM8HsugBNGG51aqGFsXtFw9dFZVYZEm3ORPHvt2fDrJ3XElOZ1BV7aipyRodXUV6T7KlKBUdom/q/kVEDeXcHNKOi/24jGmZOIykpn7W3DEtBBGWpOaU4gTKRzx0CHRQlEdhGF/Y4ZpSlXvsEnZtv/J1SUl3ggq8UDDIQ9FHnexWjKBVCdPEor+FfzlGF9E09hl9LewcrGjuTAJD1SqlFxxPIwFwyiNZxi6aUl36TcjsRq6DcQejbKTg345OFsv4CHKor1ZEZnKiWZE35Fr/WICtlS53DjVqfkBVzp5Auxg1ZEKaCZCwxUouW1qWOFicXfldxe/05bAWJ0WZ55MSF/4PCtIXv3l9nHSYjr1JGccr8lnruYdLzMHnkFvjWJFs4N9zEZITCShjie4d/uNZ6OBTKGEizsR1zcVRf6J2xhxKCMyW7EX/sbJ7E3HdJtTHendiTQT0PTu9Tze/VHRr5/7/9LueM3Mej7P7/CFM3qpmJeBcLXaKpU6b828d+VO74tnRupJV0aMKo94sRAzUmpv5AZbyjp45JSEhwNyLLRYJeJ3yI+Ef7OVrW3fRfB15UcxldPX1L9URgKRg1udiZt8hmip8nFx+8NBG7IPmFWPh6P2iHm9hrnzTFuu+N0PTh9f3fNX0/OnY6OHElODwdiaTAiNowSOXsc00kLgDlAhUVa+tpDcNTG++Xa9SDYGo6Q2+egN2IgqLULzyKR4Z8Mdyk4OCfVIMqs+aiGTZussn02n2OUt9I+JDHkpgBZ38/bRO4aOH8SjTWnh9k2nzWzPUsastytrPF745PMYldud0zgIQUpaZacxmZFUvnKllxfcO7Rq/C3pPR5vlZRBdbs362vgldXa9mp2D7viSpGBB1ryTyh2GCteJtOlLT7iKGwWmdfk0p4QP0cMYeJK78mXXL4meE8WdBLPmsIieUzR2Dv3mbFcJzwRHcKJI7TocA8h0i31YPxqege6nIutxCURO1g1KfdKesxlPdyQKeIM6d/WBOxzVWNe1uu6V4ND7wtXqOkq8eZrC5gjrWnhJVXbIHPyapXXd2VtE0VASOp1DvF9Z9bZdb0rC/Txiiwzan4UAPJ+xsODzbl5SUJorHFkwXpBpWJv8qbcs/wGgLhyY5InTebEcnlDtvaePtgpE/TEg2Mfpm15CqXf76RYzOmU5soStx85I2qHi7/Xjl43Roi2kkvX/CJMMqAW4Q5Mq+QPjl8Lf0n2H55OUHASHKtCseOBFDZFDj8U0A+z8ZEAREeO3MtVNR9xYkQQMAzNVoRtK2ajekM7TMdtWxwDc0z+6wascDhp9SSbijQrgxViR4YnLtOsh1cS+x/OxLU/OZi1pxXGA+jq7Y8lwt9qAdfTov65Q/xLDD2Mb0MIaZlCereaC6Gi1HAteftp/S0eq4XW3P5xG0a3R8SjREbQaLqbmnDULGnBysOxEl1dMF2syOQdrFkNOt2tbnOTOcSgqJbTr22AqkTHSQdpfpDZSLGcYzsL018bZ1YT0AqqE8Japi6QM+xIsnRhTIRSgzR/I90HcLJEzlmhmwtdrsq8zmdDXzkpe4ICAvswTppCrUna87Qx4Ddb0D6APkB6H7LAP/+wbQHRifu2bsqcm/zHzt9krVOUY9Xicxa5TdmgFPWV19+etaotzrswWiMDErL1Hhg90cFhCpTJh++xh9YpA9APKXSw+Ol0yQiV6HXrh9xTE8eRXAwMjgItavNP2POG1ESd3nvsrYpp4GzcmgdOsLXVISxWKwhRO+KuxyJXR3ZYGQME4etkQtlbOEGoK62oWy906cZdCZJGt7f0E5a4NEhPehHKJ6XmgKe34enTgWOl+HXI+IegvPKfcw+7qJDhMasBP6MNC10b73QJsNxA+3/rePYUmN1xzLWSGALFIq+UR0b2g7q57OC9on+3maZK/xUJxnIFqv9NQ0wYwOgLAEteF4vmheF67YwS2O2V1MJO9ULkd6L9H4NjQP2n2ej+huL5D7/Y/jhBq6+qSAJ5X95Sl8VrlwdpKaFzCQdtbsruDeSjJzWDMuQYCLOVZWwCO5kWqLaSWS1yxnsz2lys102zvLYRKEHIDlkpYvPwFM+80f3LVGkEqsiywDAIRvSmk0nNnWtgot0B+++d2UKoE3kx3S7zQT6BXtI91+W94qjOex352iB9C3/WFj65fFnBxihVkkDSvyV+Uza3Q5PBKgVfU0nNgCJ7V8G5d7oT0DDR9Z/YuK66NBCL1mlDiucoJBTdvOveP1S+bkRzYLe7VaiF15TqzzVXqpiBwYGvIgxz4MbJPheMUTJPnyUXwWMAgefwKONwTbjJ4JnRtEuF/Yk3anSP1VRgn6Xtg==当然,这些都是base64编码。那么,什么是base64呢?
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到。
比如,编写一个“123”,得出的结果就是“MTIz”。

关于DES加密的更多相关文章

  1. Android数据加密之Des加密

    前言: 端午节前有个同事咨询我有关Android DES加密的相关实现,简单的实现了一下,今天来总结一下. 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes加密 ...

  2. php使用openssl进行Rsa长数据加密(117)解密(128) 和 DES 加密解密

    PHP使用openssl进行Rsa加密,如果要加密的明文太长则会出错,解决方法:加密的时候117个字符加密一次,然后把所有的密文拼接成一个密文:解密的时候需要128个字符解密一下,然后拼接成数据. 加 ...

  3. DES加密

    接口等加密字段 import java.security.SecureRandom; import javax.crypto.Cipher;import javax.crypto.SecretKey; ...

  4. c# DES加密解密

    class DESHelper { string _iv = "9AUP"; string _key = "9d"; /// <summary> / ...

  5. (iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题

    我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Bas ...

  6. PYTHON实现DES加密及base64源码

    要求是实现DES加密,解密,我是用python实现的,还是有挺多坑的,改bug就改了挺久,加密实现后,解密过程就比较轻松. 另外,附加base64编码源码 要求:输入秘钥为64位二进制数(有效位为56 ...

  7. des加密解密——java加密,php解密

    最近在做项目中,遇到des加密解密的问题. 场景是安卓app端用des加密,php这边需要解密.之前没有接触过des这种加密解密算法,但想着肯定会有demo.因此百度,搜了代码来用.网上代码也是鱼龙混 ...

  8. DES加密解密

    加密后生成Base64字符串,并去除'='字符. 加密后替换掉'+',这样加密后的字符串可以作为url参数传递. using System; using System.IO; using System ...

  9. iOS 开发之路(AES/DES加密实现) 三

    最近接触的这个项目由于以前服务器上用的是DES/CBC/PKCS5Padding加密方式,为了让在iOS上的加密结果与服务器端保持一致,我做了很多尝试,现在分享给大家.PS:现在不推荐用DES了,只是 ...

  10. php des 加密解密实例

    des加密是对称加密中在互联网应用的比较多的一种加密方式,php 通过mcrypt扩展库来支持des加密,要在Php中使用des加密,需要先安装mcrypt扩展库 $iv_size = mcrypt_ ...

随机推荐

  1. 手动添加ceph的mds

    1.在需要安装的目标机器上创建mds目录 mkdir -p / 2.生成mds的keyring,并将其写入/var/lib/ceph/mds/ceph-0/keyring文件中 ceph auth g ...

  2. 编写高质量代码改善C#程序的157个建议——建议62:避免嵌套异常

    建议62:避免嵌套异常 应该允许异常在调用堆栈上往上传,不要过多的使用catch,然后再throw.过多的使用catch会带来两个问题: 1)代码更多了.这看上去好像你根本不知道怎么处理异常,所以你总 ...

  3. spring mvc---controller返回值

    1.ModelAndView 类似servlet,之前例子在用 addObject setViewName 2.String a.表示返回逻辑视图名 spring mvc的视图解析器中设置.(在web ...

  4. Elasticsearch 5.6.5 安装head插件

    head安装包,下载地址:https://github.com/mobz/elasticsearch-head/archive/master.zip head 插件不能放在elasticsearch- ...

  5. Android-ContentProvider-UriMatcher

    注意:在ContentProvider里面写对数据库增删改查的时候,千万不能 db.close();  cursor.close(); 等操作,不然其他应用访问不到数据,也没有必要写isOpen(); ...

  6. mysql中判断记录是否存在方法比较【转】

    把数据写入到数据库的时,常常会碰到先要检测要插入的记录是否存在,然后决定是否要写入. 我这里总结了判断记录是否存在的常用方法: sql语句:select count(*) from tablename ...

  7. C#多线程学习(四) 多线程的自动管理(线程池)

    在多线程的程序中,经常会出现两种情况: 一种情况:   应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应                   这一般使用ThreadPo ...

  8. Visual Studio 2015 Update 2 发布

    2016年3月30日,微软发布了Visual Studio 2015 Update 2 . 更新内容: Visual Studio  Visual Studio Tools for Apache Co ...

  9. 转载:各种SQRT大比拼

    很有趣的文章: http://www.codeproject.com/Articles/69941/Best-Square-Root-Method-Algorithm-Function-Precisi

  10. java 实验3 继承+多态

    实验3  继承与多态 **类可以实现多个接口 但只有单继承!** 1.继承 1).继承语法  class 子类名 extends 父类{    } 2).构造函数(通过source即可得到) 注意: ...