delphi4arab منتديات دلفي للعرب
سؤال عن كتابة برنامج تشفير نصوص - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : سؤال عن كتابة برنامج تشفير نصوص (/showthread.php?tid=1396)

الصفحات: 1 2


سؤال عن كتابة برنامج تشفير نصوص - wafike1 - 14-12-2009

السلام عليكم ورحمة الله تعالى وبركاته أما بعد
فأنا شخض في بداية مشواري التعليمي في برنامج الدلفي
وأنا **** صنع برنامج بحيث تكتب فيه نصا عادي وعندما تضغط الزر يحوله إلى نص مشفر
مثلا أكتب
الدلفي
فيعطيني الكتابة المشفرة كالتالي
hg$gtd
حيث
أ=h
ل=g
د=$
ل=g
ف=t
ي=d
فأنا **** دالة تقوم بهذا الامر
مع الشرح من فضلكم


سؤال عن كتابة برنامج تشفير نصوص - paix144 - 14-12-2009

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


سؤال عن كتابة برنامج تشفير نصوص - paix144 - 14-12-2009

حمل هذا السورس أخي


سؤال عن كتابة برنامج تشفير نصوص - S.FATEH - 14-12-2009

السلام عليكم
يمكنك استخدام بعض الاجراءات و التوابع المعرفة في الدلفي مثل الاستبدال قلب النص و غيرها

ملاحظة : الطريقة التي أشرت بها فوق غير فعالة و يمكن كسرها بسهولة عن طريق عد الاحرف الاكثر تكرار
و هكذا ..


سؤال عن كتابة برنامج تشفير نصوص - kachwahed - 14-12-2009

وعليكم السلام ورحمة الله وبركاته
لتشفير أي شيء (نص، ملف، صورة، ...) هناك عدة طرق وعدة وسائل، لكل منها ما يميزه.
مبدئيا يمكن تشفير نص بالشكل التالي:
PHP كود :
function Encrypt(const s: String; CryptInt: Integer): String;
var
  
i: integer;
  
s2: string;
begin
  
if not (Length(s) = 0) then
    
for i := 1 to Length(s) do
      
s2 := s2 + Chr(Ord(s[i]) + CrypTint);
  
Result := s2;
end;

function 
Decrypt(const s: String; CryptInt: Integer): String;
var
  
i: integer;
  
s2: string;
begin
  
if not (Length(s) = 0) then
    
for i := 1 to Length(s) do
      
s2 := s2 + Chr(Ord(s[i]) - cryptint);
  
Result := s2;
end; 
راجع أيضا:
http://www.delphi4arab.net/forum/showthread.php?tid=1047
http://www.delphi4arab.net/forum/showthread.php?tid=848
بالتوفيق.



سؤال عن كتابة برنامج تشفير نصوص - issamdnn - 15-12-2009

هنالك العديد من طرق تشفير الملفات النصية أو النصوص وسأشرح لك عنها جميعاً تقريباً.
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} 



سؤال عن كتابة برنامج تشفير نصوص - AL-MOB4RM3G - 15-12-2009

إقتباس :-بإستخدام مصفوفات معيارية يتم تغيير المحارف بناء عليها

لم افهم هذه,,
هل لك ان توضح قليلا بارك الله لك,, ؟


سؤال عن كتابة برنامج تشفير نصوص - issamdnn - 15-12-2009

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

كما سأضع إن شاء الله طرق حماية البرامج بإستخدام مسجل النظام وطريقة حماية البرامج بإستخدام فترة صلاحية للبرنامج ... وكل هذه المواضيع السابقة تندرج تحت عنوان حماية البرامج ... كل شئ خطوة بخطوة ..


سؤال عن كتابة برنامج تشفير نصوص - TF6M - 15-12-2009

السلام عليكم
أخي issamdnn كل الذي ذكرته يندرج تحت فكرة عامة : تبديل الرمز الأصلي برمز مغاير
حسب معادلة أو مصفوفة أو ثابت يعني 'ليس كل الطرق' كما ذكرت .

بالتوفيق ,,


سؤال عن كتابة برنامج تشفير نصوص - kachwahed - 15-12-2009

بارك الله فيك أخي issamdnn وجزاك كل خير.
واضح أنك تبذل نشاط مميز هذه الأيام، بالتوفيق في انتظار المزيد...
إقتباس :أخي issamdnn كل الذي ذكرته يندرج تحت فكرة عامة : تبديل الرمز الأصلي برمز مغاير
حسب معادلة أو مصفوفة أو ثابت يعني 'ليس كل الطرق' كما ذكرت .
لا ضير أن نسميها ثلاث طرق تندرج تحت فكرة عامة Smile