mikecat_mixc 2012-08-14 23:08:47

[C] 暗号化() このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

黒歴史を発掘してきた。いろいろとひどい。 (投稿用に端折っています。原文はcodepadで)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc,char *argv[]) {/*参考:苦C*/
char ps[300];
FILE *fp;
fpos_t fsize;
char fname[255];
int pos;
char a;
long i;
unsigned int rkeiretu;
if(argc<2) {
	printf("ファイル名:");
	scanf("%255s",fname);
} else {
	if(strlen(argv[1])>=255) {
		printf("ファイル名:");
		scanf("%255s",fname);
	} else strcpy(fname,argv[1]);
}
fp=fopen(fname,"r+b");
if(fp==NULL) {
	exit(0);
}
fseek(fp,0,SEEK_END);
fgetpos(fp,&fsize);
fseek(fp,0,SEEK_SET);
if(argc<3) {
	printf("パスワード(300バイトまで):");
	scanf("%300s",ps);
} else {
	if(strlen(argv[1])>=255) {
		printf("パスワード(300バイトまで):");
		scanf("%300s",ps);
	} else strcpy(ps,argv[2]);
}
rkeiretu=0;
for(i=0;i<301;i++) {
	rkeiretu+=pass[i];
	if(ps[i]==0)break;
}
srand(rkeiretu);
pos=0;
for(i=0;i<fsize;i++) {
	a=fgetc(fp);
	fseek(fp,-1,SEEK_CUR);
	fputc((ps[pos]+pos+(char)(rand()*(255-0+1.0)/(1.0+RAND_MAX)))^a,fp);
	pos++;
	if(pos>300 || ps[pos]==0)pos=0;
}
fclose(fp);
return 0;
}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント

まだコメントがありません。最初にコメントを残しませんか?

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[C] 殺意を覚えたコメント

このエントリーをはてなブックマークに追加

このコメントを書いた人はこの職業に向いて...

/*  よくわからないからNULL  */
foo( NULL );

鑑賞する »

[C] 油断大敵

このエントリーをはてなブックマークに追加

[入力文字列がパスワードとして適切か判定...

#include <stdio.h>
#include <ctype.h>
...

鑑賞する »

[C] NULL と 8 の何故

このエントリーをはてなブックマークに追加

テストは通ってるけど、教科書からやり直し...

#define TO_STRING(n, str) \
  if(n != N...

鑑賞する »