DES密钥生成

本文介绍了DES(Data Encryption Standard)密钥生成的方法,从十六进制到二进制的转换,再到置换选择1和2的过程。通过代码示例详细阐述了密钥的变换步骤,包括循环左移和特定置换的选择。对于置换选择2中大于等于29的数值处理方式,作者给出了相应的数学推导。感兴趣的读者可以加入指定讨论群进行深入交流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     第一次写原创东西,有不好的地方请多多包涵。此次写的是关于des密钥生成的,话不多说,先把代码给出如下

#include<stdio.h>
int main()
{
    char zz[]={"0000000100100011010001010110011110001001101010111100110111101111"};
    char ll[29],rr[29],ww[49];
    char z[65];
    int bb[16]={1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28};
    char ss[17],jj;
    int i,j,k,l;
    while(scanf("%s",ss)!=EOF)
    {l=0;
        for( i=0;i<16;i++)
    {
     switch(ss[i])
     {
         case '0':j=0;break;
         case '1':j=1;break;
         case '2':j=2;break;
         case '3':j=3;break;
         case '4':j=4;break;
         case '5':j=5;break;
         case '6':j=6;break;
         case '7':j=7;break;
         case '8':j=8;break;
         case '9':j=9;break;
         case 'A':j=10;break;
         case 'B':j=11;break;
         case 'C':j=12;break;
         case 'D':j=13;break;
         case 'E':j=14;break;
         default:j=15;break;
     }
     j=4*j;
      for(k=1;k<=4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值