bytesub.cpp

来自「一些密码的程序」· C++ 代码 · 共 34 行

CPP
34
字号
#include<stdio.h>
unsigned char m[8]={0xf1,0xe3,0xc7,0x8f,0x1f,0x3e,0x7c,0xf8},x,y,j,n,a;
unsigned char gf(char s,char d)
{ unsigned char m,n,r;
  for(n=1,m=s,r=0;n;n<<=1)
  { if(n&d) r^=m;
    if(!(128&m)) m<<=1;
    else m=(m<<=1)^27;
  }
  return r;
}
unsigned char igf(char a)
{ unsigned char ai,i;//scanf("%x",&a);
  j=gf(a,a) ;
  for(i=0,ai=1;i<7;i++)
  { ai=gf(ai,j);
    j=gf(j,j);
  }
  return ai;//printf("\n%x %x %x",a,ai,gf(a,ai));
}
main()
{ scanf("%x",&a);
  x=igf(a);
  for(j=8;j;)
  { y<<=1;
    n=m[--j]&x;
    for(;n;n>>=1) y^=1&n;
  }
  printf("\n%x\n",y^=99);
}



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?