المحتوى

22‏/07‏/2013

برنامج لتشفير الملفات والرسائل

من أرشيف المدونة: 2008

السلام عليكم ورحمة الله

سأستعرض هنا فكرة أولية لتشفير الملفات وبالامكان تطويرها حتى تصبح عالية الأمان , ولكن أفضل دائما البدأ ببرنامج واضح وبسيط ومن ثم يتم تطويره شيئا فشيئا.
حقيقة حاليا لايتسع وقتي للاسهاب في الحديث عن هذا الموضوع ولكن عسى الله أن يسخر لي ذلك , وحتى ذلك الحين سأترككم مع النص المصدري للبرنامج , وللعلم فإن فكرة البرنامج تقوم على عمل ازاحة للحرف بمقدار (معين يقرره المستخدم)

قم بانشاء ملف باسم source.txt ثم اكتب فيه الرسالة المراد تشفيرها
قم بتشغيل البرنامج , وسيطلب البرنامج password وهي عبارة عن مقدار الازاحة , قم بادخال اي رقم بين 1 و 255
ستلاحظ أنه تم تكوين ملف جديد باسم encode.txt يحتوي على الرسالة المشفرة
بامكانك فك الشفرة باستخدام البرنامج , لذا قم بتشغيل البرنامج ثم أدخل نفس رقم الازاحة السابق ثم اضغط رقم 2 لفك الشفرة
ستلاحظ تكوين ملف جديد باسم decode.txt يحتوي على الرسالة الأصلية


أترككم مع النص المصدري:

//////////////////////////////////////
// SBR_CODING //
// Version 1.0 //
// By AL Bara Ramli //
// opencpp@yahoo.com //
// www.albara.co.cc //
// Copyright (C) 2008 //
// Tripoli Libya //
//////////////////////////////////////
// Last Update in 1/10/2008 //
//////////////////////////////////////

#include stdio.h
#include conio.h
#include string.h
#include ctype.h
//قمت بكتابت الاستدعاء بهذا الشكل لأن المدونة لا تسمح بالأقواس المعكوفة
char s[10000];
///////////////////////////////////////////////////////
char sh(char r,char x,int j)
{
switch(x)
{
case '+': r=r+j; /*while(isalpha(r)==0) {r++;}*/ break;
case '-': r=r-j; /*while(isalpha(r)==0) {r--;}*/ break;
}
return r;
}
///////////////////////////////////////////////////////
void sf(char *nf)
{
FILE *F;
F=fopen(nf, "w");
fwrite(s,10, 1, F);
fclose(F);
}
///////////////////////////////////////////////////////
int rf(char *nf,char *nf2, char x,int j)
{
char c;int i=-1;
FILE *F;
FILE *F2;
F2=fopen(nf2, "w");
F=fopen(nf, "r");
fseek(F, 0, SEEK_SET);
for(;;)
{
c = fgetc(F);
s[++i]=c;
if(c == EOF) {/*s[i]='\0'; fputc(s[i],F2);*/break;}
else fputc(sh(s[i],x,j),F2);
}
fclose(F);
fclose(F2);
return i;
}
///////////////////////////////////////////////////////
void main()
{
int pass;
char *file_1="source.txt";
char *file_2="encode.txt";
char *file_3="decode.txt";
clrscr();
printf("enter password [from 1 to 255]=>");scanf("%d",&pass);
printf("press [1] for encode, or press [2] for decode =>");
switch(getch())
{
case '1':rf(file_1,file_2,'+',pass);//printf("%s",s);
break;
case '2':rf(file_2,file_3,'-', pass);//printf("%s",s);
break;
}
//getch();
}

ليست هناك تعليقات:

إرسال تعليق