DES加密算法的一种简单实现
来源:互联网 发布:淘宝树林名妆 假货 编辑:程序博客网 时间:2024/05/16 12:45
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
写了三种算法,最近没什么事情,想整理一下放上来,万一哪天丢了还能在CSDN这里找回来。不过说实话CSDN的稳定性也很令人怀疑。
DES算法的简单说明
DES的每个分组是64位,既明文和密钥都是64位(密钥实际用56位,每字节第8位为校验)。这个算法的核心是Feistel密码,由于其设计的巧妙,加密解密都用一个函数,具体原理请查阅其他资料。DES的流程基本是执行16轮下面的运算: 1 初始变换Initial Permutation 2 右边32位f函数 2.1 E置换 2.2 与轮密钥XOR 2.3 S盒替换 2.4 P置换 2.5 和左边32位XOR 3 左右交换,最终变换final permutation需要特别注意的是,最后一轮是不需要做左右交换这一部的,有的书在这个问题上写得不够明确,逼得我当时手算了一遍,还好只是64位。
实现分析
可以看出DES里到处都是基于bit的置换,所以我的实现是把明文的64位拆开保存在数组里,再写一个专门处理置换的函数。private int[] permutation(int[] initial, int[] perm) { int[] result = new int[perm.length]; for(int i=0; i<result.length; i++) { result[i]=initial[perm[i]-1]; } return result; }剩下的事情就是照着书上的算法描述实现就可以了。
我还是不会写东西.........<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script><script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- DES加密算法的一种简单实现
- DES加密算法的一种简单实现
- DES加密算法的实现
- DES加密算法的实现
- DES 加密算法的实现
- DES加密算法的实现
- DES加密算法的实现
- 一种简单的加密算法
- java 中 DES 加密算法的一个简单实现
- DES加密算法的源码实现
- DES加密算法的java实现
- DES加密算法的C++实现
- des对称加密算法的实现
- DES加密算法的C++实现
- DES加密算法的C++实现
- 简单讲述DES加密算法
- 简单讲述DES加密算法
- c#下DES加密算法的实现
- 设计之美——命令模式(二)
- 多线程设计要点
- 类的设计方法
- Avalon基本概念(2)-Avalon中的COP
- [转]s3c2410触摸屏驱动(2.6内核)分析
- DES加密算法的一种简单实现
- 最新经典语录
- 获取系统环境
- Avalon基本概念(4)-IoC模式
- Java正则表达式详解
- 构建自己的基于 Java 的超级计算机
- wu qi zhao ba de listview control use the sort function with SDK simple example
- Tomcat连接池首次配置成功状态
- AES密码算法的实现