数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的。通常,自动取款机(Automated Teller Machine,ATM)都使用DEA。它出自IBM的研究工作,IBM也曾对它拥有几年的专利权,但是在1983年已到期后,处于公有范围中,允许在特定条件下可以免除专利使用费而使用。1977年被美国政府正式采纳。
DES的原始思想可以参照二战德国的恩格玛机,其基本思想大致相同。传统的密码加密都是由古代的循环移位思想而来,恩格玛机在这个基础之上进行了扩散模糊。但是本质原理都是一样的。现代DES在二进制级别做着同样的事:替代模糊,增加分析的难度。
DES的加密原理,是使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算。
类似于: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当然,这些都是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. [GO]go语言实现区块链工作证明(pow)原理

    package main import ( "math/big" "bytes" "math" "crypto/sha256&qu ...

  2. ArcGIS中地图导出格式比较(转)

    转自:http://blog.sina.com.cn/s/blog_6438c8360101eqfx.html   有人问过这样的问题,用于出挂图的地图格式应该怎么选择?熟悉ArcGIS的用户都知道, ...

  3. 从零开始学习前端JAVASCRIPT — 8、JavaScript基础COOKIE

    1:通信协议 定义:通信协议是指双方实体完成通信或服务所必须遵循的规则和约定.协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到 ...

  4. kalilinux-漏洞评估

    Nessus\OpenVAS http://www.tenable.com/products/nessus/select-your-operating-system http://www.nessus ...

  5. element onclick 动态创建元素并绑定onclick事件

    <html> <head> <meta charset="UTF-8"> <title>b</title> <sc ...

  6. 深入理解java虚拟机(十二) Java 语法糖背后的真相

    语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语.指的是,在计算机语言中添加某种语法,这些语法糖虽然不会对语言 ...

  7. 正确理解volatile与happens-before

    1. 双重校验锁实现单例的问题 在延迟实现单例时,一般代码形式如下: public class Foo { private static volatile Foo instance; public s ...

  8. Android-读取操作系统通话记录并/拨打电话/发送短信/复制号码到拨号盘

    apps目录的contacts应用(有读取通话记录功能),是访问provider目录的provider.contacts应用(有暴露通话记录),所以要阅读Android操作系统源码-->pack ...

  9. C#+MVC+EF+LayUI框架的应用(附带源码和教程)

    内容: 1.该框架主要用到的技术有MVC,EF,Layer,以及Razor语法和数据库有关的操作. 2.框架二次开发(增加,删除,修改,建库,以及维护查询等) 3.框架公用库更新要求与规范 4.本框架 ...

  10. [转]解读Unity中的CG编写Shader系列5——理论知识

    经过前面的系列文章中的三个例子,尽管代码简单,但是我想应该还有些地方没有100%弄明白,我们现在得回过头来补充一些必备的数学.图形学知识 1.图形管道第一个例子中我有提到顶点着色和片段着色在整个图形绘 ...