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=546)

الصفحات: 1 2 3


كيف يتم حل معادلة تشفير كلمة السر - hanipino - 11-02-2009

التعديلات فى الدالفى 2009 .

PHP كود :
function Encrypt(s:AnsiString):AnsiString;
var 
i,b:byte;
var 
aux,aux2:AnsiString;
begin
     aux2
:='r#gg&P~<gthb8b=r#gg&P~<gthb8b=';
     
aux:=s;
     for 
i:=1 to length(s)do
     
begin
       b
:=ord(s[i])+ord(aux2[i])+(length(s)*23)+(i*49);
       
aux[i]:= AnsiChar(chr(b));
     
end;
     
Encrypt:=aux;
end; 

PHP كود :
Function Dcyt(S:AnsiString):AnsiString;
Const 
Aux2 = 'r#gg&P~<gthb8b=r#gg&P~<gthb8b=';
var
 
I:Longword;
begin
  
for I := Low(I)+1 To Length(S)  do
  
Result:=Result+AnsiChar(Chr(Ord(S[I])-(Ord(Aux2[i])+Length(S)*23+(I*49))));
end; 

الكلمة byby ??????? .


كيف يتم حل معادلة تشفير كلمة السر - kachwahed - 14-12-2009

وعليكم السلام
اليوم فقط وقعت على هذا الموضوع، فيما يخص التعديلات على Delphi2010، بهذا الشكل:
PHP كود :
function Encrypt(s: AnsiString): String;
var
  
i, b: byte;
var
  
aux, aux2: AnsiString;
begin
  aux2 
:= 'r#gg&P~<gthb8b=r#gg&P~<gthb8b=';
  
aux := s;
  for 
i := 1 to length(s) do
  
begin
    b 
:= ord(s[i]) + ord(aux2[i]) + (length(s) * 23) + (i * 49);
    
aux[i] := AnsiChar(chr(b));
  
end;
  
Encrypt := aux;
end;

Function 
Dcyt(s: AnsiString): String;
Const
  
aux2: AnsiString = 'r#gg&P~<gthb8b=r#gg&P~<gthb8b=';
var
  
i: Longword;
begin
  
for i := Low(i) + 1 To length(s) do
    
Result := Result + AnsiChar
      
(chr(ord(s[i]) - (ord(aux2[i]) + length(s) * 23 + (i * 49))));
end; 
ولا حاجة لتحويل ناتج الدوال إلى AnsiString وتحويل البراميتر في Encrypt فقط لدعم Unicode.
يبقى كلمة byby أعتقد أنه وقع في التشفير رمز يصعب فك تشفيره فتحول إلى شكل آخر، حاول إضافة نقطة بعد byby وستجد النتيجة صحيحة.
شكرا كثيرا لكم.