ورود

View Full Version : سوال: كامپوننت Encrypt كردن فايل



connector
یک شنبه 08 دی 1387, 11:16 صبح
با سلام
راستش من دنبال يه كامپوننت دلفي قوي براي Encrypt كردن فايل هستم به طوري كه عمل Decrypt كردن رو مستقيما توي مموري انجام بده و نه روي هارد آيا چنين كامپوننتي سراغ داريد؟
البته خودم يه همچين چيزي پيدا كردم كه متاسفانه نميدونم چطور بايد ازش استفاده كنم اگر دوستان راهنمايي كنن خيلي ممنون ميشم.
http://www.torry.net/quicksearchd.ph...ptor&Title=Yes (http://www.torry.net/quicksearchd.php?String=Alfa+Transparent+File+Encr yptor&Title=Yes)

vcldeveloper
یک شنبه 08 دی 1387, 15:25 عصر
مجانی:
Delphi Encryption Compendium
TurboPower LockBox

پولی:
SecureBlackBox

استفاده از توابع API ویندوز:
Windows CryptoAPI

connector
یک شنبه 08 دی 1387, 17:58 عصر
ممنون آقاي كشاورز
همون TurboPower LockBox رو كه رايگان بود دانلود كردم با اينكه مجاني بود اما به نظرم چيز خوبي اومد اما هر چي باهاش ور رفتم نتونستم فايل رو مستقيما توي مموري Decropt كنم توي Sample خودش هم فقط Decrypt كردن توي هارد رو داشت ميشه راهنمايي كنيد چطور ميشه اين كار رو كرد؟
خيلي ممنون

vcldeveloper
دوشنبه 09 دی 1387, 03:55 صبح
همون TurboPower LockBox رو كه رايگان بود دانلود كردم با اينكه مجاني بود اما به نظرم چيز خوبي اومد اما هر چي باهاش ور رفتم نتونستم فايل رو مستقيما توي مموري Decropt كنم توي Sample خودش هم فقط Decrypt كردن توي هارد رو داشت ميشه راهنمايي كنيد چطور ميشه اين كار رو كرد؟
فایل را در یک MemoryStream بریزید، Stream مربوطه را در یک MemoryStream دیگه Decrypt کنید. محتوای Decrypt شده را با استفاده از SaveToFile، بر روی دیسک بنویسید.

connector
سه شنبه 15 بهمن 1387, 21:33 عصر
فایل را در یک MemoryStream بریزید، Stream مربوطه را در یک MemoryStream دیگه Decrypt کنید. محتوای Decrypt شده را با استفاده از SaveToFile، بر روی دیسک بنویسید.


آقا اگر يه حرفه اي لطف كنه و با استفاده از همون كامپوننت TurboPower LockBox كه آقاي كشاورز لطف كردند و لينك و همچنين توضيحاتش رو دادند يك مثال عملي براي من و باقي دوستان كه ميدونم تعدادشون كم هم نيست آپلود كنند واقعا لطف بزرگي كرديد.
ممنون

mossaferin
یک شنبه 20 بهمن 1387, 19:00 عصر
http://sourceforge.net/project/showfiles.php?group_id=71009

این لینک دانلودش ، هم مثال داره هم داکیومنت کامل ، چیزی کم نداره

connector
سه شنبه 29 بهمن 1387, 02:28 صبح
ممنون از راهنمایی های جناب کشاورز و همچنین mossaferin
من کد زیر رو برای همون مطلبی که آقای کشاورز در خصوص ریختن فایل در یک MemoryStream و سپس Decode کردن اون نوشتم اما درست کار نمیکنه من فایل رو در MemoryStream میریزم ولی وقتی میخوام اون رو در یک MemoryStream دیگه Decode کنم اررور Incompatible types میده:
Incompatible types: 'String' and 'TMemoryStream'

procedure TForm1.Button1Click(Sender: TObject);
var
Stream :TMemoryStream;
image1:TMemoryStream;
Stream2: TMemoryStream;
begin
Stream:= TMemoryStream.Create;
image1:=TMemoryStream.Create;
Stream2:= TMemoryStream.Create;
try
image1.LoadFromFile( 'C:\Test\pic.bmp');
image1.SaveToStream(Stream);
//تا اینجا هیچ مشکلی نیست
//Step2
case TEncryption(cbxCipher.ItemIndex) of
//در اینجا اررور میده
eBf : BFEncryptFile(Stream, Stream2, Key128, //chkEncrypt.Checked);
eBfCbc : BFEncryptFileCBC(Stream, Stream2, Key128, chkEncrypt.Checked);
eDes : DESEncryptFile(Stream, Stream2, Key64, chkEncrypt.Checked);
eDesCbc : DESEncryptFileCBC(Stream, Stream2, Key64, chkEncrypt.Checked);
e3Des : TripleDESEncryptFile(Stream, Stream2, Key128, chkEncrypt.Checked);
e3DesCbc : TripleDESEncryptFileCBC(edtInfile.Text, edtOutfile.Text, Key128, chkEncrypt.Checked);
eRdl : RDLEncryptFile(edtInfile.Text, edtOutfile.Text, Key128, 16, chkEncrypt.Checked);
eRdlCbc : RDLEncryptFileCBC(edtInfile.Text, edtOutfile.Text, Key128, 16, chkEncrypt.Checked);
end;
finally
end;

end;
end.

دنیای دلفی
سه شنبه 29 بهمن 1387, 13:20 عصر
ورودي توابع رشته است شما نمي توانيد مستقيم استريم بدهيد

vcldeveloper
سه شنبه 29 بهمن 1387, 18:22 عصر
خب طبیعی هست که خطا میده. شما باید از متدهای مربوط به Encrypt کردن Stream آن استفاده کنید، نه از متدهای مربوط به Encrypt کردن فایل.