PDA

View Full Version : ایجاد یه رشته رمز شده



اصغر (پآچ)
یک شنبه 12 آبان 1387, 10:24 صبح
سلام دوستان

من می خوام کلمه عبور هایی که کاربران برای ورود به برنامه ام استفاده می کنن رو که به رشته توی بانکم ذخیره شده رو به صورت رمز در بیارم

بهترین فکری که من به ذهنم می رسه یه فرمول من درآوردی که بیام رمز رو تعداد کاراکتراش رو بشمرم و به یه تصاعد به تک تک کاراکترا یه عدد رو اضافه کنم تا به صورت یه رشته جدا تبدیل شه!

مثلا اگه رمزمون abc بود بیاد به کد اسکی a که عدد 65 است 12 اضافه کنه به b عدد 14 و به c عدد 16 رو اضافه کنه که حاصل مثلا یه چیزی مثل moq میشه این رشته جدید رو توی بانکم ذخیره کنم و موقعی که می خوام رمز رو چک کنم که درسته یا نه عکس همین عمل رو انجام بدم

حالا کسی هست بتونه کمکم کنه این تابع رو بنویسم و به صورت یه Unit مجزا درستش کنم که توی تمام برنامه هام بتونم ازش استفاده کنم!

پیشا پیش از راهنمایی دوستان کمال تشکر رو دارم
موفق و موید باشید

حمیدرضاصادقیان
یک شنبه 12 آبان 1387, 13:10 عصر
سلام. شما میتونی از الگوریتم های آماده استفاده کنی.مثل DES . که یونیت مربوط به اون هم با دلفی نوشته شده. و فکر نکنم به این راحتی قابل برگشت باشه.یا از الگوریتم های hash استفاده کنید و مقدار hash شده در دیتابیس رو با hash پسورد وارد شده توسط کاربر چک کنید اگر درست بود انجام بدید.

اصغر (پآچ)
دوشنبه 13 آبان 1387, 23:39 عصر
سلام

من یه الگوریتم به اسم MD5 از توی همین سایت پیدا کردم اما مشکلی که داشت نتونستم ازش خروجی بگیرم فقط تونستم دو تا مقدار رو با هم مقایسه کنم

من یه الگوریتم میخوام که بشه ازش خروجی گرفت مثلا یه رشته بهش بدی بیاد کدینگ رو انجام بده و یه خروجی برام بده

این الگوریتم رو میشه بهم معرفی کنید

موفق و موید باشید

merced
سه شنبه 14 آبان 1387, 00:03 صبح
function XorStr(Stri, Strk: String): String;
var
Longkey: string;
I: Integer;
Next: char;
begin
for I := 0 to (Length(Stri) div Length(Strk)) do
Longkey := Longkey + Strk;
for I := 1 to length(Stri) do
begin
Next := chr((ord(Stri[i]) xor ord(Longkey[i])));
Result := Result + Next;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
{ Encode The String }
Edit1.Text := XorStr('The String', '1234567890');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
{ Decode The String }
Edit2.Text := XorStr(Edit1.Text, '1234567890');
end;

ghabil
سه شنبه 14 آبان 1387, 00:10 صبح
اگر میخوای رمز به این ساده ای استفاده کنی از Indy Encoder ها استفاده کن مثلا :



Form1.Caption:= IdEncoderMIME1.Encode(Form1.Caption)

m-khorsandi
سه شنبه 14 آبان 1387, 12:30 عصر
معمولاً Hash پسورد رو رمز می‌كنند و نگهداری می‌كنند،
برای رمزنگاری و Hash از بسته رايگان LockBox ميتونی استفاده كنی يا از توابع موجود در SecureBlackBox، بسته‌ی LockBox رو در SourceForge.Net ميتونی پيدا كنی.

zman123456
سه شنبه 14 آبان 1387, 17:40 عصر
جناب خورسندی.مجانی بودن این محصول یعنی راحت شکسته شدن آن؟
تو سایت رفتم هم LockBox بود و هم TurboPower LockBox.
توضیحات turbopower lockbox
LockBox is a cross-platform toolkit for data encryption. It contains routines & components for use with Borland Delphi, C++Builder, & Kylix. It provides support for Blowfish, RSA, MD5, SHA-1, DES, triple- DES, Rijndael, & digital signing of messages.
توضیحات lockbox
Lockbox is a password vault that provides you with a secure way to store your numerous logins and passwords, accessible with a master password. It uses proven 256-bit AES encryption. Written in Java. Small enough to run off of a USB drive.

اینطوری که از توضیحات بر می آید نوع عادی فقط برای رمزگذاری پسوردها به کار میره.و نوع TurboPower کلا رمزگذاری و رمزگشایی با الگوریتم های مختلف.
حالا منظور شما کدوم یکی بود.
من فکر کنم نوع عادی کمی محدود باشه.
شما که کار کردید میشه بیشتر توضیح بدید؟

ariobarzan
چهارشنبه 15 آبان 1387, 09:25 صبح
شايد base64 بتونه كمك كنه

m-khorsandi
چهارشنبه 15 آبان 1387, 09:36 صبح
اینطوری که از توضیحات بر می آید نوع عادی فقط برای رمزگذاری پسوردها به کار میره.و نوع TurboPower کلا رمزگذاری و رمزگشایی با الگوریتم های مختلف.
دقيقاً منظورم TurboPower LockBox هست و رايگان بودن اون دليلی بر ضعف اونها نيست، SecureBlackBox يا LockBox يا... ابزاری هستند كه كدها، توابع و فرمول‌های رياضی مربوط به رمزنگاری يا خلاصه پيام رو پياده‌سازی كردند و شما نيازی به پياده‌سازی مجدد اونها نداری، در هر صورت اين فرمولها موجود هست و ميتونی اونها روی وب پيدا كنی. اگه درست يادم باشه شركت TurboPower ابزارش رو در سال 2003 به صورت Open Source ارائه كرد، ولی قبل از اون اين محصولات تجاری بودند.