07-01-2010, 02:34 PM
السلام عليكم ورحمة الله
الأمر الذي يجهله الكثير (كنت واحد منهم) هو وجود MD5 مع دلفي منذ الاصدار 2007 وهي تعمل مع 2009/2010
بالوحدة MessageDigest_5.pas الموجودة بالمجلد source\Win32\soap\wsdlimporter\
وهذا مثال يستخدمها
مصدر المعلومة مدونة Jeroen Pluimers
http://wiert.wordpress.com/2009/12/11/de...elphi-2007
الأمر الذي يجهله الكثير (كنت واحد منهم) هو وجود MD5 مع دلفي منذ الاصدار 2007 وهي تعمل مع 2009/2010
بالوحدة MessageDigest_5.pas الموجودة بالمجلد source\Win32\soap\wsdlimporter\
وهذا مثال يستخدمها
PHP كود :
program md5;
{$APPTYPE CONSOLE}
uses
SysUtils,
MessageDigest_5 in 'C:\Program Files\Embarcadero\RAD Studio\7.0\source\Win32\soap\wsdlimporter\MessageDigest_5.pas';
// Vista/Windows 7: MessageDigest_5 in 'C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\source\Win32\soap\wsdlimporter\MessageDigest_5.pas';
function GetMd5(const Value: AnsiString): string; overload;
var
hash: MessageDigest_5.IMD5;
fingerprint: string;
begin
hash := MessageDigest_5.GetMD5();
hash.Update(Value);
fingerprint := hash.AsString();
Result := LowerCase(fingerprint);
end;
function GetMd5(const Value: UnicodeString): string; overload;
var
hash: MessageDigest_5.IMD5;
fingerprint: string;
begin
hash := MessageDigest_5.GetMD5();
hash.Update(Value);
fingerprint := hash.AsString();
Result := LowerCase(fingerprint);
end;
var
SourceAnsiString: AnsiString;
SourceUnicodeString: UnicodeString;
SourceRawByteString: RawByteString;
begin
try
SourceAnsiString := 'foobar';
SourceUnicodeString := 'foobar';
SourceRawByteString := 'foobar';
Writeln(GetMd5(SourceAnsiString));
Writeln(GetMd5(SourceUnicodeString));
Writeln(GetMd5(SourceRawByteString));
SourceAnsiString := 'föøbår';
SourceUnicodeString := 'föøbår';
SourceRawByteString := 'föøbår';
Writeln(SourceAnsiString, ' ', GetMd5(SourceAnsiString));
Writeln(SourceUnicodeString, ' ', GetMd5(SourceUnicodeString));
Writeln(SourceRawByteString, ' ', GetMd5(SourceRawByteString));
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
http://wiert.wordpress.com/2009/12/11/de...elphi-2007

