سؤال عن كتابة برنامج تشفير نصوص
#6
هنالك العديد من طرق تشفير الملفات النصية أو النصوص وسأشرح لك عنها جميعاً تقريباً.
1- بإستخدام تابعي ord وال chr الموجودين في دلفي على كل محرف .
2-بإستخدام مصفوفات معيارية يتم تغيير المحارف بناء عليها .
3- بإستخدام تقنية تشفير النص بناء على نص أخر مثل بعض الملفات الموجودة في windows
4- بإستخدام ثوابت الجهاز كالرقم التسلسلي الخاص بالهارد دسك .

كل هذه الطرق صحيحة وسأرضع الإجرائية التالية كمثال يوضح الأستخدام الأول لهذه التقنيات.
PHP كود :
procedure TForm1.CheckCharTybe(S: string;labnum:TLabel);
var
x,y,z,n,v,w:integer;
    
ch1:Char;
    
ch2:char;
    
ch3:char;
    
ch4:char;
    
ch5:char;
         
AF: set of char;
         
GL: set of CHAR;
         
MR: set of CHAR;
         
SX: set of CHAR;
         
YZ: set of CHAR;
         
N1: set of CHAR;
         
N2: set of CHAR;
begin
af
:=['A','B','C','D','E','F'];
GL:=['G','H','I','J','K','L'] ;
MR:=['M','N','O','P','Q','R'];
SX:=['S','T','U','V','W','X'];
YZ:=['Y','Z'];
N1:=['0','1','2','3','4'];
N2:=['5','6','7','8','9'];
if 
Length(s)=5 then
     begin
//==============================================================
//==============================================================
if s[1] in AF then
     begin
     ch1
:=chr(ord(s[1])+7);
     
end;
     if 
s[1] in GL then
     begin
     ch1
:=chr(ord(s[1])+9);
     
end;
     if 
s[1] in MR then begin
     ch1
:=chr(ord(s[1])+6);
     
end;
     if 
s[1] in SX then begin

     ch1
:=chr(ord(s[1])+2);
     
end;
     if 
s[1] in YZ then begin

      ch1
:=chr(ord(s[1])-9);
     
end;
     if 
s[1] in N1 then begin
     ch1
:=chr(ord(s[1])+3);
     
end;
     if 
s[1] in N2 then begin
      ch1
:=chr(ord(s[1])-3);
     
end;
//=============================================
//=============================================
if s[2] in AF then begin
      ch2
:=chr(ord(s[2])+5);
     
end;
     if 
s[2] in GL then begin
      ch2
:=chr(ord(s[2])+8);
     
end;
     if 
s[2] in MR then begin
     ch2
:=chr(ord(s[2])+4);
     
end;
     if 
s[2] in SX then begin
      ch2
:=chr(ord(s[2])+1);
     
end;
     if 
s[2] in YZ then begin
      ch2
:=chr(ord(s[2])-7);
     
end;
     if 
s[2] in N1 then begin
      ch2
:=chr(ord(s[2])+4);
     
end;
     if 
s[2] in N2 then begin
      ch2
:=chr(ord(s[2])-3);
     
end;
//ـــــــــــــــــــــــــــــــــــــــــــــــ
//ـــــــــــــــــــــــــــــــــــــــــــــــ
if s[3] in AF then begin
     ch3
:=chr(ord(s[3])+2);
     
end;
     if 
s[3] in GL then begin
     ch3
:=chr(ord(s[3])+5);
     
end;
     if 
s[3] in MR then begin
     ch3
:=chr(ord(s[3])+7);
     
end;
     if 
s[3] in SX then begin
      ch3
:=chr(ord(s[3])-4);
     
end;
     if 
s[3] in YZ then begin
     ch3
:=chr(ord(s[3])-8);
     
end;
     if 
s[3] in N1 then begin
     ch3
:=chr(ord(s[3])+3);
     
end;
     if 
s[3] in N2 then begin
      ch3
:=chr(ord(s[3])-3);
     
end;
//ـــــــــــــــــــــــــــــــــــــــــــــــ
//ـــــــــــــــــــــــــــــــــــــــــــــــ
if s[4] in AF then begin
     ch4
:=chr(ord(s[4])+3);
     
end;
     if 
s[4] in GL then begin
      ch4
:=chr(ord(s[4])-3);
     
end;
     if 
s[4] in MR then begin
      ch4
:=chr(ord(s[4])-2);
     
end;
     if 
s[4] in SX then begin
      ch4
:=chr(ord(s[4])-5);
     
end;
     if 
s[4] in YZ then begin
     ch4
:=chr(ord(s[4])-4);
     
end;
     if 
s[4] in N1 then begin
      ch4
:=chr(ord(s[4])+5);
     
end;
     if 
s[4] in N2 then begin
      ch4
:=chr(ord(s[4])-4);
     
end;
//ـــــــــــــــــــــــــــــــــــــــــــــــ
//ـــــــــــــــــــــــــــــــــــــــــــــــ
if s[5] in AF then begin
     ch5
:=chr(ord(s[5])+4);
     
end;
     if 
s[5] in GL then begin
      ch5
:=chr(ord(s[5])+6);
     
end;
     if 
s[5] in MR then begin
     ch5
:=chr(ord(s[5])+4);
     
end;
     if 
s[5] in SX then begin
      ch5
:=chr(ord(s[5])-4);
     
end;
     if 
s[5] in YZ then begin
     ch5
:=chr(ord(s[5])-4);
     
end;
     if 
s[5] in N1 then begin
     ch5
:=chr(ord(s[5])+4);
     
end;
     if 
s[5] in N2 then begin
      ch5
:=chr(ord(s[5])-4);
     
end;
//ـــــــــــــــــــــــــــــــــــــــــــــــ
//ـــــــــــــــــــــــــــــــــــــــــــــــ
LABNUM.Caption:=ch1+CH2+CH3+CH4+CH5;
//ـــــــــــــــــــــــــــــــــــــــــــــــ
//ـــــــــــــــــــــــــــــــــــــــــــــــ
     
end;


if 
Length(s)=3 then
               begin
if s[1] in AF then begin
      ch1
:=chr(ord(s[1])+9);
     
end;
     if 
s[1] in GL then begin
      ch1
:=chr(ord(s[1])+4);
     
end;
     if 
s[1] in MR then begin
      ch1
:=chr(ord(s[1])+6);
     
end;
     if 
s[1] in SX then begin
      ch1
:=chr(ord(s[1])-4);
     
end;
     if 
s[1] in YZ then begin
     ch1
:=chr(ord(s[1])-3);
     
end;
     if 
s[1] in N1 then begin
      ch1
:=chr(ord(s[1])+3);
     
end;
     if 
s[1] in N2 then begin
      ch1
:=chr(ord(s[1])+3);
     
end;
//ـــــــــــــــــــــــــــــــــــــــــــــــ
//ـــــــــــــــــــــــــــــــــــــــــــــــ
if s[2] in AF then begin
      ch2
:=chr(ord(s[2])+1);
     
end;
     if 
s[2] in GL then begin
      ch2
:=chr(ord(s[2])-1);
     
end;
     if 
s[2] in MR then begin
      ch2
:=chr(ord(s[2])-2);
     
end;
     if 
s[2] in SX then begin
      ch2
:=chr(ord(s[2])-2);
     
end;
     if 
s[2] in YZ then begin
      ch2
:=chr(ord(s[2])-7);
     
end;
     if 
s[2] in N1 then begin
       ch2
:=chr(ord(s[2])+5);
     
end;
     if 
s[2] in N2 then begin
       ch2
:=chr(ord(s[2])-5);
     
end;
//ـــــــــــــــــــــــــــــــــــــــــــــــ
//ـــــــــــــــــــــــــــــــــــــــــــــــ
if s[3] in AF then begin
     ch3
:=chr(ord(s[3])+7);
     
end;
     if 
s[3] in GL then begin
      ch3
:=chr(ord(s[3])+7);
     
end;
     if 
s[3] in MR then begin
      ch3
:=chr(ord(s[3])-7);
     
end;
     if 
s[3] in SX then begin
      ch3
:=chr(ord(s[3])-5);
     
end;
     if 
s[3] in YZ then begin
      ch3
:=chr(ord(s[3])-9);
     
end;
     if 
s[3] in N1 then begin
      ch3
:=chr(ord(s[3])+5);
     
end;
     if 
s[3] in N2 then begin
      ch3
:=chr(ord(s[3])-5);
     
end;
//ـــــــــــــــــــــــــــــــــــــــــــــــ
//ـــــــــــــــــــــــــــــــــــــــــــــــ
LABNUM.Caption:=ch1+ch2+ch3;
//ـــــــــــــــــــــــــــــــــــــــــــــــ
//ـــــــــــــــــــــــــــــــــــــــــــــــ
end;                      {End of the checking the chars} 
الرد


الردود في هذا الموضوع
سؤال عن كتابة برنامج تشفير نصوص - بواسطة issamdnn - 15-12-2009, 08:32 AM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم