DES算法,IP置换的功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则见下表:

58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,
62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,
57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,
61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,

即将输入的第58位换到第一位,第50位换到第2位,...,依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0 是右32位,例

如:设置换前的输入值为D1D2D3......D64,则经过初始置换后的结果为:L0=D58D50...D8;R0=D57D49...D7。

其典型C代码实现如下:
定义IP置换表如上表,char类型数组,长度为64;
然后,在从0到64循环,把源数组的数据按IP置换表的内容填到目的数组,即实现了IP置换;

// initial permutation (IP)
const static char IP_Table[64] = {58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4,62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8,57, 49, 41, 33, 25, 17,  9, 1, 59, 51, 43, 35, 27, 19, 11, 3,61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7
};void DES_InitialPermuteData(char* src,char* dst)
{//IPint i=0;for(i=0;i<64;i++){dst[i] =src[IP_Table[i]-1];}
}

DES算法详解和代码 - IP置换相关推荐

  1. Go-AES算法详解与代码

    目录 AES 发展史 概述 轮函数F 字节代换 行移位 列混淆 轮密钥加 密钥编排 AES和DES的不同之处 分组模式CTR AES的Go实现 aes包 cipher包 加密/解密 参考 本篇介绍分组 ...

  2. 粒子群(pso)算法详解matlab代码,粒子群(pso)算法详解matlab代码

    粒子群(pso)算法详解matlab代码 (1)---- 一.粒子群算法的历史 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS).CAS理论于1994年正式提出,C ...

  3. 数学建模——主成分分析算法详解Python代码

    数学建模--主成分分析算法详解Python代码 import matplotlib.pyplot as plt #加载matplotlib用于数据的可视化 from sklearn.decomposi ...

  4. 【分享实录】BANCOR算法详解及代码实现

    1 活动基本信息 1)主题:[区块链技术工坊22期]BANCOR算法详解及代码实现 2)议题: BANCOR算法的特点和优劣势 BANCOR算法和举例 如何加入BANCOR.NETWORK交易所 如何 ...

  5. 技术工坊|BANCOR算法详解及代码实现(上海)

    2019独角兽企业重金招聘Python工程师标准>>> EOS项目在RAM分配中采用了Bancor算法,并将RAM的价格爆炒到了很高的价位,凭借EOS项目在区块链领域的强大运营宣传能 ...

  6. 【区块链技术工坊22期实录】王登辉:BANCOR算法详解及代码实现

    1,活动基本信息 1)题目: [区块链技术工坊22期]BANCOR算法详解及代码实现 2)议题: 1)BANCOR算法的特点和优劣势 2)BANCOR算法和举例 3)如何加入BANCOR.NETWOR ...

  7. 算法 经典的八大排序算法详解和代码实现

    算法 经典的八大排序算法详解和代码实现 排序算法的介绍 排序的分类 算法的时间复杂度 时间频度 示例 图表理解时间复杂度的特点 时间复杂度 常见的时间复杂度 空间复杂度 排序算法的时间复杂度 冒泡排序 ...

  8. [联邦学习] FedAvg聚合算法详解及代码实现

    该文章首发于若绾 [联邦学习] FedAvg聚合算法详解及代码实现,转载请标注出处. 论文原文:Communication-Efficient Learning of Deep Networks fr ...

  9. KMP算法详解及代码

    KMP算法详解及代码 KMP算法详解及代码 定义及应用 理论 基本概念 next 数组 总结 注意 代码 KMP算法详解及代码 最近正好在看字符串相关的算法内容,就顺便把KMP算法回顾了一下.相应的代 ...

最新文章

  1. 数学建模公式编辑器_一款“神奇”的数学公式编辑器
  2. pyqtdeploy教程_PyQtdeploy-V2.4 User Guide 中文 (一)
  3. 那些我希望在一开始使用 Zsh(oh-my-zsh) 时就知道的
  4. vs点击方法跳不到对于的地方_NBA总决赛G4直播:湖人vs热火,热火继续针对浓眉,能否扳平比分?...
  5. 解除服务器端口号占用及服务器端口号的修改
  6. 用C++流成员函数put输出单个字符
  7. 关于OAuth2.0 Authorization Code+PKCE flow在原生客户端(Native App)下集成的思考
  8. CodeForces - 76E Points
  9. python模块time_Python模块:time模块详解(转)
  10. 教育部:到2020年全面普及实名制网络学习空间
  11. D3D自定义的设备丢失对象
  12. 数据科学(data science)概览
  13. python有几种_Python常见的几种算法
  14. 【数据结构和算法】广度优先BFS遍历图(树的层序遍历的拓展)
  15. SQL Service 数据库 基本操作 视图 触发器 游标 存储过程
  16. 设计模式系列 — 模板方法模式
  17. 方舟生存 服务器修改器,【修改贴】关于单机版gg修改器的应用。
  18. 我又拖后腿了, 2月全国程序员平均工资13716元!
  19. 大物设计性实验:电容、电感量的测量
  20. android集成EasyPlayer播放器播放实时流媒体视屏

热门文章

  1. 设计立方体类(求出立方体的面积和体积 分别用全局函数和成员函数判断两个立方体是否相等)
  2. Python的可变类型和不可变类型
  3. LinkedHashMap 实现缓存(LRU、FIFO、weakhashMap)
  4. CTFshow 命令执行 web54
  5. win10系统上使用utorrent的问题
  6. 欧几里得算法扩展欧几里得算法
  7. Python标准库04 文件管理 (部分os包,shutil包)
  8. static_cast函数
  9. 五种排序方式gif展示【python】
  10. 模拟退火算法理论+Python解决函数极值+C++实现解决TSP问题