Python中如何使用DES算法进行数据加密操作?

2026-05-16 22:300阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2426个文字,预计阅读时间需要10分钟。

Python中如何使用DES算法进行数据加密操作?

加密流程+首先说明一下设置换位的意图,例如说有5678这个字符串,设置换位表为2143,换位表中数字表示的位置,所代表的字符是原来的位置,所以字符串变成6587。所有的换位表在程序中。 (S盒设置不统一,会另外说明)

加密流程

首先说一下置换的意思,比如说有5678这个字符串,置换表为2143,置换表中的数表示的是位置,所以字符串变成6587。所有的置换表在程序中。(S盒置换不一样,会另外说明)

密钥部分

Python中如何使用DES算法进行数据加密操作?

  • 把8位字符串密钥变成2进制(好像密钥只可以是8位,这一块我也没有搞太清楚)
  • 64位密钥进行PC1置换,变成56位,因为以前DES是用硬件实现的,所以8,16,24,32,40,48,56,64位为校验位,不记入密钥部分。但是我们现在是用软件实现,所以这8位需要去掉,再打乱顺序。
  • 将56位密钥对半分L0和R0、分别对L0和R0进行左循环移位,(当轮数为第1、2、9、16轮时,移动1位,其余时候移动两位)L0,R0移动1位后得到L1,R1。L1和R0继续进行下一轮,进行16轮。
  • 上面移位得到的所以Li+Ri进行PC2置换得到16个子密钥(PC2置换把56位数据变成了48位)。
阅读全文

本文共计2426个文字,预计阅读时间需要10分钟。

Python中如何使用DES算法进行数据加密操作?

加密流程+首先说明一下设置换位的意图,例如说有5678这个字符串,设置换位表为2143,换位表中数字表示的位置,所代表的字符是原来的位置,所以字符串变成6587。所有的换位表在程序中。 (S盒设置不统一,会另外说明)

加密流程

首先说一下置换的意思,比如说有5678这个字符串,置换表为2143,置换表中的数表示的是位置,所以字符串变成6587。所有的置换表在程序中。(S盒置换不一样,会另外说明)

密钥部分

Python中如何使用DES算法进行数据加密操作?

  • 把8位字符串密钥变成2进制(好像密钥只可以是8位,这一块我也没有搞太清楚)
  • 64位密钥进行PC1置换,变成56位,因为以前DES是用硬件实现的,所以8,16,24,32,40,48,56,64位为校验位,不记入密钥部分。但是我们现在是用软件实现,所以这8位需要去掉,再打乱顺序。
  • 将56位密钥对半分L0和R0、分别对L0和R0进行左循环移位,(当轮数为第1、2、9、16轮时,移动1位,其余时候移动两位)L0,R0移动1位后得到L1,R1。L1和R0继续进行下一轮,进行16轮。
  • 上面移位得到的所以Li+Ri进行PC2置换得到16个子密钥(PC2置换把56位数据变成了48位)。
阅读全文