1、DES(Data Encryption Standard)算法:数据加密标准。是替换和置换细致而复杂的结合体,替换和置换一个接着一个,共循环16次。算法首先将明文分块,每块64位。密钥也是64位,但实际上它可以使任意56位的数字(多余的8位通常作为校验位,但不影响加密)。

    替换提供了混乱性,置换提供了扩散性。

    混乱性:当明文中的字符变化时,截取者不能预知密文会有何变化。

    扩散性:将明文中单一字母包含的信息散布到整个输出中的特性。

DES算法加密过程如下图:

2、AES加密算法(Advanced Encryption Standard):高级加密标准。分块大小为128位,像DES一样,也使用重复的循环,对于128、192和256位点的密钥分别会有10、12和14次循环。

AES典型:Rijndael算法:Rijndael是一种快速算法,主要使用的时候替换、置换、移位、加以及特殊的或运算。在Rijndael中,循环称为“轮”;

a、字节替换:这一步使用和DES相似的替换结构,根据一张替换表来替换128位分块中的每个字节,这一步是直接的混乱操作。

b、行移位:一个置换步骤。对于128和192位的分块,第n行循环左移(n-1)个字节;对于256位的分块,第2行移位1个字节,第三行和第四行分别移位3和4个字节。这是一个直接的混乱操作。

c、列移位:该步骤包括左移、与自身的异或运算。这些步骤提供了混乱性和扩散性。

d、加上子密钥:密钥的一部分与循环结果进行特殊或运算,这一部分对于此次循环式唯一的。这步操作提供了混乱性并合并了密钥。

3、RSA(Rivest-Shamir-Adelman)加密算法:是一种公开密钥体制,使用两个密钥d和e,分别用于解密和加密。

  P=E(D(P))=D(E(P))

我对DES AES RSA的认识的更多相关文章

  1. 加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用(转载)

    加密技术通常分为两大类:"对称式"和"非对称式". 对称性加密算法:对称式加密就是加密和解密使用同一个密钥.信息接收双方都需事先知道密匙和加解密算法且其密匙是相 ...

  2. 加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用

    加密技术通常分为两大类:"对称式"和"非对称式". 对称性加密算法:对称式加密就是加密和解密使用同一个密钥.信息接收双方都需事先知道密匙和加解密算法且其密匙是相 ...

  3. [转]加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用

    原文链接:http://www.cnblogs.com/sochishun/p/7028056.html 加密技术通常分为两大类:"对称式"和"非对称式". 对 ...

  4. 实验源码,DES,AES,RSA,椭圆曲线

    https://pan.baidu.com/s/1CPA-bnLmcJR_AFsNImhUjQ

  5. C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)

    一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应 ...

  6. 加解密 3DES AES RSA 简介 示例 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  7. Atitit.加密算法 des  aes 各个语言不同的原理与解决方案java php c#

    Atitit.加密算法 des  aes 各个语言不同的原理与解决方案java php c# 1. 加密算法的参数::算法/模式/填充 1 2. 标准加密api使用流程1 2.1. Md5——16bi ...

  8. 我的Android进阶之旅------>Android采用AES+RSA的加密机制对http请求进行加密

    前言 未加密的抓包截图 加密之后的抓包截图 基本需求及概念 AES算法 AES基本原理及算法流程 AES算法流程 RSA算法 RSA算法基本原理及流程 RSA算法实现流程 AES与RSA相结合数据加密 ...

  9. Java和C/C++进行DES/AES密文传输(借鉴)

    Java和C/C++进行DES/AES密文传输 声明:对于新手来说很难解决的一个问题,终于在非常煎熬之后找到这篇文章,所以借鉴过来.原文地址http://blog.sina.com.cn/s/blog ...

随机推荐

  1. mac电脑如何快速显示桌面及切换应用

    使用mac电脑时,我们习惯打开很多应用,文档等等.如果打开应用非常多,需要操作桌面,却不知如何快速返回桌面和切换应用时,操作就非常不便了,下面简单介绍mac电脑系统如何快速显示桌面及切换应用? 工具/ ...

  2. Android仿微信底部选项卡

    第一步 添加依赖 dependencies { compile 'com.yinglan.alphatabs:library:1.0.5' } 第二步 布局使用 <?xml version=&q ...

  3. kafka和zookeeper的配置文件优化配置

    zookeeper的配置 日志自动清理这两个参数都是在zoo.cfg中配置的:    autopurge.purgeInterval 这个参数指定了清理频率,单位是小时,需要填写一个1或更大的整数,默 ...

  4. LeetCode_69. Sqrt(x)

    69. Sqrt(x) Easy Implement int sqrt(int x). Compute and return the square root of x, where x is guar ...

  5. activity 工作流

    https://blog.csdn.net/cs_hnu_scw/article/details/79059965 https://blog.csdn.net/xnf1991/article/deta ...

  6. eclipse spring3.X redis 整合-配置

    花了一天时间折腾redis的配置 用到的jar spring 3.1.1 aopalliance-1.0.jar commons-pool2-2.3.jar jedis-2.7.2.jar sprin ...

  7. 一种可以避免数据迁移的分库分表scale-out扩容模式

    转自: http://jm.taobao.org/ 一种可以避免数据迁移的分库分表scale-out扩容方式 目前绝大多数应用采取的两种分库分表规则 mod方式 dayofweek系列日期方式(所有星 ...

  8. iOS面试考察点

    )自我介绍.项目经历.专业知识.自由提问 (2)准备简历.投发简历.笔试(电话面试.).面试.复试.终面试.试用.转正.发展.跳槽(加薪升职) 1闲聊 a)自我介绍:自我认识能力 b)评价上一家公司: ...

  9. 在Electron运行的子页面无法访问window.opener解决方案

    我们的首页有一个window.open打开子页面后反向刷新父页面的功能,但是主页面如果开启了nodeIntegration=true,这个时候再设置nativeWindowOpen是不启作用的.再被w ...

  10. python获取昨日日期

    获取昨日日期oneday = datetime.timedelta(days=1) 一天 day = datetime.datetime.strptime(self.date,'%Y-%m-%d') ...