みけCATのにっき(仮)
つれづれなるまゝに、日くらし、PCにむかひて、心に移りゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ。
(本当か!?)
出典

DESのプログラム

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

DESのプログラム

投稿記事 by みけCAT » 14年前

http://free.pjc.co.jp/3DES/index.html
のpdfを参考にDES暗号化をするプログラムを作ろうと思いました。
前に同じpdfを参考にActive Basicで作ったのですが、いったんビットごとに配列に格納して処理をし、
また戻すという横着仕様でした。
そこで、まじめに作り直そうと思いました。
というわけでとりあえず転置のコード(の一部)を吐くプログラムです。
pdfの転置表をテキストファイルにコピペしたものを読み込みます。
間違ってたりしたらコメントで指摘していただけるとありがたいです。

CODE:

#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;
}

コメントはまだありません。