のpdfを参考にDES暗号化をするプログラムを作ろうと思いました。
前に同じpdfを参考にActive Basicで作ったのですが、いったんビットごとに配列に格納して処理をし、
また戻すという横着仕様でした。
そこで、まじめに作り直そうと思いました。
というわけでとりあえず転置のコード(の一部)を吐くプログラムです。
pdfの転置表をテキストファイルにコピペしたものを読み込みます。
間違ってたりしたらコメントで指摘していただけるとありがたいです。
#include
/*maketenti */
int main(int argc,char* argv[]) {
int i;
int pos;
FILE* in;
FILE* out;
if(argc \n");
return 1;
}
in=fopen(argv[1],"r");
if(in==NULL) {
printf("Input file open error\n");
return 1;
}
out=fopen(argv[2],"w");
if(out==NULL) {
fclose(in);
printf("Output file open error\n");
return 1;
}
for(i=0;fscanf(in,"%d",&pos)>0;i++) {
pos--;
if(pos%8!=i%8)
fprintf(out,"%s[%d]|=(%s[%d] & 0x%X)%s%d;\n",
argv[4],i/8,argv[3],pos/8,1i%8)?">>":"i%8)?pos%8-i%8:i%8-pos%8);
else
fprintf(out,"%s[%d]|=%s[%d] & 0x%X;\n",
argv[4],i/8,argv[3],pos/8,1<<pos%8);
}
fclose(in);
fclose(out);
return 0;
}