• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

✅ بحث و گفتگو بین وبمسترها

rezatak6

کاربر فعال کسب درآمد از اینترنت
کاربر فعال
تاریخ عضویت
3 ژوئن 2014
نوشته‌ها
3,311
لایک‌ها
1,906
سلام
یه بازی هست cpu نمیکشه میشه کاریش کرد بدون ارتقا cpu بکشه؟ :rolleyes:
 

madman2011

Registered User
تاریخ عضویت
19 دسامبر 2011
نوشته‌ها
3,191
لایک‌ها
2,725
سن
31
كسي لينك فيلم رصطاخيذ رو داره بي سانسور شو
 

elco

Registered User
تاریخ عضویت
13 دسامبر 2015
نوشته‌ها
340
لایک‌ها
211
سن
34
محل سکونت
کرج
این نرم افزارهایی که( مثلن پسورد) رو تبدیل به کد میکنن چه جوریاس؟؟؟
یعنی مثلن میگه اگه عدد 1 بود تبدیلش کن به au ؟همیشه تبدیلش میکنه به این؟
اگه همیشه باشه اینجوری که راحت میشه رمز گشاییش کرد؟
کلن در رابطه با رمزنگاری کردن میخوام بدونم چی سرچ کنم؟(مثلن اینی که میگن شبکه های اجتماعی براپیاما انجام میدن مثه تل گرام اینا..)
@MOHAMMAD026_1 , @aalireza439 و سایر دوستان...
سلام

بستگی به کسی داره که انکریپت رو مینویسه
برای مثال انکود کردن با روش base64 رو خب عمومیه و دیکد کردنش هم حتی با دست هم راحته
اما برای مثال انکودرهایی مثل سورس گاردیان یا زند یا یانکیوب و ... میان الگوریتم مخصوص به خودشون رو توسعه میدن
برای مثال شما خودت میای یه انکودر مینویسی که اسم علی رو تبدیل کنه به %^#$@#% و من میام یه الگوریتمی مینویسم که علی رو تبدیل کنه به 123456 و همینطور ...
حالا هر الگوریتمی که شخصی نوشته بشه برای خوندن نیاز به لودر مخصوص به خودشو داره مثلا اگر نگاه کنی کدهایی که رو هاست با یانکیوب انکود شدن نیاز به نصب لودر ioncube روی سرور دارن وگرنه اجرا نمیشن
در کل بستگی به نویسنده برنامه داره که از چه الگوریتمی استفاده کنه
 

aalireza439

کاربر فعال وب مسترها
کاربر فعال
تاریخ عضویت
5 ژانویه 2009
نوشته‌ها
3,563
لایک‌ها
7,670
محل سکونت
Golestan
این نرم افزارهایی که( مثلن پسورد) رو تبدیل به کد میکنن چه جوریاس؟؟؟
یعنی مثلن میگه اگه عدد 1 بود تبدیلش کن به au ؟همیشه تبدیلش میکنه به این؟
اگه همیشه باشه اینجوری که راحت میشه رمز گشاییش کرد؟
کلن در رابطه با رمزنگاری کردن میخوام بدونم چی سرچ کنم؟(مثلن اینی که میگن شبکه های اجتماعی براپیاما انجام میدن مثه تل گرام اینا..)
@MOHAMMAD026_1 , @aalireza439 و سایر دوستان...
اول از همه سوالی که پرسیدی در مورد دو بحث جداست ، یکی ذخیره پسورد ها و یکی هم یپام رد بدل شده بین کاربرها.

عموما برای ذخیره پسورد از روش هش (Hash) کردن استفاده و برای تبادل پیام هم از روش رمزگذاری (Encrypting) استفاده شده ، که این از نظر عملکرد با هم تفاوت دارن.
حالا در مورد هر کدوم یک توضیح کوتاه میدم
اول هش (Hash) : هش یک رشته ای از کاراکترها ایجاد شده از یک مقدار ورودی هست (بر اساس یک الگوریتم مشخص مقدار ورودی هش میشه) که دارای یک طول ثابت هست و به طور کامل با مقدار ورودی اولیه متفاوت هست . از نظر تئوری بهترین الگوریتم هش ، الگورتیمی هست که ، امکان تبدیل هش به مقدار اولیه اش غیر ممکن باشه.
از محبوب ترین الگورتیم های هش هم میشه به MD5 و SHA شامل (SHA-0, SHA-1, و SHA-2) اشاره کرد.
مورد استفاده هش : ایده ال ترین مورد استفاده از هش ، برای ذخیره پسورد ها هست ، به دلیل ذات طبیعی هش که یک طرفه هست (هدف اصلی هش ایجاد یک مقدار هست و قرار نیست که مقدار هش شده به مقدار اولیه برگشته بشه) ، امکان دسترسی به مقدار اولیه رو دشوار میکنه (البته بسته به الگوریتم مورد استفاده هم هست)
برای مثال وقتی یک کاربر میخواهد لوگین کنه ، وقتی نام کاربری و رمز عبورش رو وارد میکنه ، شما رمز عبور میگیرید و هش میکنید و با مقدار که توی دیتابس برای کاربر ذخیره شده مقایسه اش میکنید و باقی قضایا.
حالا اینکه استفاده به این صورت بهترین روش هست یا نه و روش هایی با امنیت بیشتر هم هست ، در موردش پایین تر توضیح میدم.

دوم رمزگذاری (Encrypting) : رمزگذاری به تبدیل کردن داده ها به یک مجموعه ای از کاراکترهای غیر قابل خوانا ، با استفاده از یک کلید خاص ، که دارای طول ثابت نیستند گفته میشه ، تقاوت اصلی بین رمزگذاری و هش کردن این هست که توی رمزگذاری در صورت داشتن کلید میتونید رشته رمزگذاری شده رو به مقدار اولیه اش برگردونید.
توضیح ساده : تو رمزگذاری یک کلید مثل یک رمزعبور هست که شما باهاش میتونید یک گاو صندوق رو باز کنید ، برای رمزگذاری یک پیام ، فرستنده پیام رو توی گاوصندوق میزاره و با کلیدی که داره گاوصندوق رو قفل میکنه . زمانی که گاوصندوق ققل شد ، هیچ کس نمیتونه پیام رو بخونه مگر اینکه به کلید دسترسی داشته باشه ،گیرنده از یک کلید استفاده میکنه و گاوصندوق رو باز میکنه و پیام رو بیرون میکشه (یا همون رمز گشایی).
حالا دو نوع اصلی رمزگذاری وجود داره ، یکی رمزگذاری کلید متقارن (symmetric key encryption) یکی هم رمزگذاری کلید عمومی (public key encryption) ، به این روش رمزگذاری کلید نامتقارن هم میگن.

در رمزگذاری متقارن ، هر دو فرستنده و گیرنده یک کلید دارن و مجبورن که اون کلید رو با هم به اشتراک بزارن . به دلیل سرعت بیشتر اغلب از این روش استفاده میشه ، اما مشکلی که وجود داره ، اینکه وقتی که کلید بین دو نفر مشترک هست ، هیچ وقت نمیشه مطمئن بود که طرق مقابل کلید رو به اشتراک گذاشته یا نه.

در رمزگذاری نا متقارن (Public Key Encryption) : تو این روش از دو کلید استفاده میشه ، یک کلید عمومی (public key) و یک کلید شخصی (private key) . فرستنده پیام از کلید عمومی گیرنده استفاده میکنه تا پیام رو توی گاوصندوق گیرنده قرار بده (رمزگذاری)، کلید عمومی فقط برای قرار دادن پیام ها توی گاوصندوق گیرنده هست ، یعنی اینکه با وجود اینکه کلید عمومی گاوصندوق گیرنده رو باز میکنه ، اما هیچ دسترسی به محتویات داخلش نداره (فقط میتونه پیام رو قرار بده) به عبارت دیگه دسترسی یک طرفه باز هست.
حالا گیرنده برای خوندن پیام میاد از کلید شخصی خودش استفاده میکنه و پیام که فرستنده براش گذاشته رو میخونه (رمزگشایی میکنه) ، کلید شخصی فقط برای خود گیرنده هست و کسی دیگه ای بهش دسترسی نداره ، اینطوری میشه مطمئن شد که پیام ها رو فقط گیرنده میتونه بخونه.
پ.ن : کلید شخصی و کلید عمومی برای اینکه کار کنن توسط یکسری ریاضیات پیچیده به هم مرتبط میشن .

از محبوب ترین الگوریتم های رمزگذاری میشه به AES (نوع متقارن) و PGP (نوع کلید عمومی) اشاره کرد.



بالاتر گفتم که در مورد بهترین روش های ذخیر پسورد توضیج میدم ،
انواع روش ها رو یکی یکی توضیح میدم و در مورد خوبی و بدی هاشون هم اشاره میکنم.

اولین روش ذخیر به صورت متن ساده (Plain Text) : ساده ترین راه ذخیر پسورد هست ، به این صورت که میایید ، رمزعبور رو یکجایی تو دیتابس به صورت خوانا ذخیره میکنید و زمانی که کاربر بخواهد استفاده کتید ، خیلی راحت مقدار ورودی کاربر رو باهاش مقایسه میکنید.
از نظر امنیت ، این روش بدترین روش ممکن هست و اگر هکری بتونه دیتابس شما دسترسی پیدا کنه ، فقط کافیه اطلاعات کاربرهای شما کپی پست کنه ! در حال حاضر هیچ سایت مشهوری یا غیر مشهوری از این روش استفاده نمیکنه (البته سایت های ایرانی زیاد مطمئن نباشید ، نمونش فیسنما بود که نمیدونم کی هک شده بود و تمام اطلاعات کاربرها رو لو داده بود)

دومین روش استفاده از رمزگذاری ابتدایی : این روش همونطور که بالاتر در مورد رمزگذاری توضیح دادم با استفاد از یک کلید ، میاد پسورد رو کد گذاری اش میکنید و فقط در صورت داشتن کلید میتونی اون رو رمزگشایی کنید ، اما مشکلی که این روش داره این هست که اغلب ، کلید و پسورد کنار توی یک سرور ذخیره میشن و هکر با داشتن کلید میتونه اطلاعات رو دسترسی داشته باشه

سومین روش استفاده از هش : این روش هم بالاتر توضیح دادم ، شما میایید پسورد ها رو هش میکنه ، و رمز عبور رو به صورت رشته هایی ناخوانا ذخیر میکنید، مشکل این روش هم این که هکر ها می تونن ، پسوردهای شما رو دیکود کنن، الان با توجه به قدرت محاسباتی بالای کامپیوتر و همچین وجود ابزار مثل جدول رنگین کمان (لیست شامل تریلیون ها رمز های مختلف با هش شون هست) ، کار خیلی سختی نیست.

چهارمین روش استفاده از هش با پاشیدن کمی نمک ! (Hashed with Salt) : تو این روش منطور پاشیدن نمک ، اضافه کردن یک رشته کاراکتری رندم (که بهش Salt میگیم) به ابتدای یا انتهای هش هست. اینجا ما میاییم برای هر پسورد هش شده یک salt مجزا تخصیص میدیم و اینطوری به دلیل اینکه هر Salt رشته طولانی و پیچیده یکتا هست ، کار هکر سخت میشه ، بهترین حالت استفاد از Salt این هست بیاییم Salt رو تو یک سرور مجزا ذخیره کنیم ، اما حتی اگر جفت شون هم تو یک سرور باشن ، باز هم کار هکر هایی که از جدول رنگین کمان استفاده میکنن ، خیلی سخت میشه.



روش پنجم استفاده از هش های کند (Slow Hashes): در حال حاضر این روشی هست که کارشناس های امنیتی پیشنهاد به استفاده ازش میکنن ، تو هش کردن با استفاده از تابع هایی مثل MD5, SHA-1 و.. سرعت به صورت نسبی بالاست ، منظورم این هست که شما وقتی یک رشته رو با MD5 هش میکنید ، خیلی سریع براتون ایجاد میکنه ، این میتونه برای هکرها زمانی که حمله brute force انجام میدن ، یک امتیاز مثبت باشه .
حالا وقتی شما از یک الگوریتم مثل pbkdf2 یا bcrypt برای هش کردن استفاده کنید ، که زمان بیشتری میگیره ، باعث میشه کار هکرها تو حمله های brute force خیلی خیلی بیشتر طول بکشه (به دلیل اینکه دیکود هر پسورد زمان بیشتری رو برای محاسبه میخواهد)
 

elco

Registered User
تاریخ عضویت
13 دسامبر 2015
نوشته‌ها
340
لایک‌ها
211
سن
34
محل سکونت
کرج
@l3est
سلام ، چطوری مهدی ؟
میبینم که موفق شدی بسازی نرم افزار رو ایول
تونستی از بانک شماره هم ادد کنی ؟
این آپدیت آخر تلگرام که کاربر میتونه تنظیم کنه کی ادش کنه به گروه یا کانال بدجور رو مخ بود که اونم چند روزه تونستم یه کاریش کنم و حل شد ولی نیازه که یه جوری بات ارسال کننده پیام رو به عنوان کانتاکت اد کنه که اینم به همون روش قبلی بدون اجازه میشه اینکارو کرد
پ.ن : برای اولین بار تو زندگیم به توصیه یه نفر عمل کردم که گفتی خود نرم افزارو نفروش اگه فروخته بودم الآن نابود شده بود روشش ( واقعا مرسی )
راستی چرا تلگرام ادم نکردی ؟ من اینجا نمیام اد کن تلگرام فک کنم شمارمو بهت دادم بیا کارت دارم خیلی مهمه ( پ.خ نمیتونم بدم بال موبم )
 
Last edited:

elco

Registered User
تاریخ عضویت
13 دسامبر 2015
نوشته‌ها
340
لایک‌ها
211
سن
34
محل سکونت
کرج
اول از همه سوالی که پرسیدی در مورد دو بحث جداست ، یکی ذخیره پسورد ها و یکی هم یپام رد بدل شده بین کاربرها.

عموما برای ذخیره پسورد از روش هش (Hash) کردن استفاده و برای تبادل پیام هم از روش رمزگذاری (Encrypting) استفاده شده ، که این از نظر عملکرد با هم تفاوت دارن.
حالا در مورد هر کدوم یک توضیح کوتاه میدم
اول هش (Hash) : هش یک رشته ای از کاراکترها ایجاد شده از یک مقدار ورودی هست (بر اساس یک الگوریتم مشخص مقدار ورودی هش میشه) که دارای یک طول ثابت هست و به طور کامل با مقدار ورودی اولیه متفاوت هست . از نظر تئوری بهترین الگوریتم هش ، الگورتیمی هست که ، امکان تبدیل هش به مقدار اولیه اش غیر ممکن باشه.
از محبوب ترین الگورتیم های هش هم میشه به MD5 و SHA شامل (SHA-0, SHA-1, و SHA-2) اشاره کرد.
مورد استفاده هش : ایده ال ترین مورد استفاده از هش ، برای ذخیره پسورد ها هست ، به دلیل ذات طبیعی هش که یک طرفه هست (هدف اصلی هش ایجاد یک مقدار هست و قرار نیست که مقدار هش شده به مقدار اولیه برگشته بشه) ، امکان دسترسی به مقدار اولیه رو دشوار میکنه (البته بسته به الگوریتم مورد استفاده هم هست)
برای مثال وقتی یک کاربر میخواهد لوگین کنه ، وقتی نام کاربری و رمز عبورش رو وارد میکنه ، شما رمز عبور میگیرید و هش میکنید و با مقدار که توی دیتابس برای کاربر ذخیره شده مقایسه اش میکنید و باقی قضایا.
حالا اینکه استفاده به این صورت بهترین روش هست یا نه و روش هایی با امنیت بیشتر هم هست ، در موردش پایین تر توضیح میدم.

دوم رمزگذاری (Encrypting) : رمزگذاری به تبدیل کردن داده ها به یک مجموعه ای از کاراکترهای غیر قابل خوانا ، با استفاده از یک کلید خاص ، که دارای طول ثابت نیستند گفته میشه ، تقاوت اصلی بین رمزگذاری و هش کردن این هست که توی رمزگذاری در صورت داشتن کلید میتونید رشته رمزگذاری شده رو به مقدار اولیه اش برگردونید.
توضیح ساده : تو رمزگذاری یک کلید مثل یک رمزعبور هست که شما باهاش میتونید یک گاو صندوق رو باز کنید ، برای رمزگذاری یک پیام ، فرستنده پیام رو توی گاوصندوق میزاره و با کلیدی که داره گاوصندوق رو قفل میکنه . زمانی که گاوصندوق ققل شد ، هیچ کس نمیتونه پیام رو بخونه مگر اینکه به کلید دسترسی داشته باشه ،گیرنده از یک کلید استفاده میکنه و گاوصندوق رو باز میکنه و پیام رو بیرون میکشه (یا همون رمز گشایی).
حالا دو نوع اصلی رمزگذاری وجود داره ، یکی رمزگذاری کلید متقارن (symmetric key encryption) یکی هم رمزگذاری کلید عمومی (public key encryption) ، به این روش رمزگذاری کلید نامتقارن هم میگن.

در رمزگذاری متقارن ، هر دو فرستنده و گیرنده یک کلید دارن و مجبورن که اون کلید رو با هم به اشتراک بزارن . به دلیل سرعت بیشتر اغلب از این روش استفاده میشه ، اما مشکلی که وجود داره ، اینکه وقتی که کلید بین دو نفر مشترک هست ، هیچ وقت نمیشه مطمئن بود که طرق مقابل کلید رو به اشتراک گذاشته یا نه.

در رمزگذاری نا متقارن (Public Key Encryption) : تو این روش از دو کلید استفاده میشه ، یک کلید عمومی (public key) و یک کلید شخصی (private key) . فرستنده پیام از کلید عمومی گیرنده استفاده میکنه تا پیام رو توی گاوصندوق گیرنده قرار بده (رمزگذاری)، کلید عمومی فقط برای قرار دادن پیام ها توی گاوصندوق گیرنده هست ، یعنی اینکه با وجود اینکه کلید عمومی گاوصندوق گیرنده رو باز میکنه ، اما هیچ دسترسی به محتویات داخلش نداره (فقط میتونه پیام رو قرار بده) به عبارت دیگه دسترسی یک طرفه باز هست.
حالا گیرنده برای خوندن پیام میاد از کلید شخصی خودش استفاده میکنه و پیام که فرستنده براش گذاشته رو میخونه (رمزگشایی میکنه) ، کلید شخصی فقط برای خود گیرنده هست و کسی دیگه ای بهش دسترسی نداره ، اینطوری میشه مطمئن شد که پیام ها رو فقط گیرنده میتونه بخونه.
پ.ن : کلید شخصی و کلید عمومی برای اینکه کار کنن توسط یکسری ریاضیات پیچیده به هم مرتبط میشن .

از محبوب ترین الگوریتم های رمزگذاری میشه به AES (نوع متقارن) و PGP (نوع کلید عمومی) اشاره کرد.



بالاتر گفتم که در مورد بهترین روش های ذخیر پسورد توضیج میدم ،
انواع روش ها رو یکی یکی توضیح میدم و در مورد خوبی و بدی هاشون هم اشاره میکنم.

اولین روش ذخیر به صورت متن ساده (Plain Text) : ساده ترین راه ذخیر پسورد هست ، به این صورت که میایید ، رمزعبور رو یکجایی تو دیتابس به صورت خوانا ذخیره میکنید و زمانی که کاربر بخواهد استفاده کتید ، خیلی راحت مقدار ورودی کاربر رو باهاش مقایسه میکنید.
از نظر امنیت ، این روش بدترین روش ممکن هست و اگر هکری بتونه دیتابس شما دسترسی پیدا کنه ، فقط کافیه اطلاعات کاربرهای شما کپی پست کنه ! در حال حاضر هیچ سایت مشهوری یا غیر مشهوری از این روش استفاده نمیکنه (البته سایت های ایرانی زیاد مطمئن نباشید ، نمونش فیسنما بود که نمیدونم کی هک شده بود و تمام اطلاعات کاربرها رو لو داده بود)

دومین روش استفاده از رمزگذاری ابتدایی : این روش همونطور که بالاتر در مورد رمزگذاری توضیح دادم با استفاد از یک کلید ، میاد پسورد رو کد گذاری اش میکنید و فقط در صورت داشتن کلید میتونی اون رو رمزگشایی کنید ، اما مشکلی که این روش داره این هست که اغلب ، کلید و پسورد کنار توی یک سرور ذخیره میشن و هکر با داشتن کلید میتونه اطلاعات رو دسترسی داشته باشه

سومین روش استفاده از هش : این روش هم بالاتر توضیح دادم ، شما میایید پسورد ها رو هش میکنه ، و رمز عبور رو به صورت رشته هایی ناخوانا ذخیر میکنید، مشکل این روش هم این که هکر ها می تونن ، پسوردهای شما رو دیکود کنن، الان با توجه به قدرت محاسباتی بالای کامپیوتر و همچین وجود ابزار مثل جدول رنگین کمان (لیست شامل تریلیون ها رمز های مختلف با هش شون هست) ، کار خیلی سختی نیست.

چهارمین روش استفاده از هش با پاشیدن کمی نمک ! (Hashed with Salt) : تو این روش منطور پاشیدن نمک ، اضافه کردن یک رشته کاراکتری رندم (که بهش Salt میگیم) به ابتدای یا انتهای هش هست. اینجا ما میاییم برای هر پسورد هش شده یک salt مجزا تخصیص میدیم و اینطوری به دلیل اینکه هر Salt رشته طولانی و پیچیده یکتا هست ، کار هکر سخت میشه ، بهترین حالت استفاد از Salt این هست بیاییم Salt رو تو یک سرور مجزا ذخیره کنیم ، اما حتی اگر جفت شون هم تو یک سرور باشن ، باز هم کار هکر هایی که از جدول رنگین کمان استفاده میکنن ، خیلی سخت میشه.



روش پنجم استفاده از هش های کند (Slow Hashes): در حال حاضر این روشی هست که کارشناس های امنیتی پیشنهاد به استفاده ازش میکنن ، تو هش کردن با استفاده از تابع هایی مثل MD5, SHA-1 و.. سرعت به صورت نسبی بالاست ، منظورم این هست که شما وقتی یک رشته رو با MD5 هش میکنید ، خیلی سریع براتون ایجاد میکنه ، این میتونه برای هکرها زمانی که حمله brute force انجام میدن ، یک امتیاز مثبت باشه .
حالا وقتی شما از یک الگوریتم مثل pbkdf2 یا bcrypt برای هش کردن استفاده کنید ، که زمان بیشتری میگیره ، باعث میشه کار هکرها تو حمله های brute force خیلی خیلی بیشتر طول بکشه (به دلیل اینکه دیکود هر پسورد زمان بیشتری رو برای محاسبه میخواهد)
سلام
علیرضا اطلاعاتت فوق العادست
فقط تروخدا اینی که میپرسم ناراحت نشو واقعا برام خیلی جالب شد
الآن برای مثال این پستی که دادی این اطلاعات رو از جایی پیدا کردی و گفتی یا نه میدونستی و نوشتی ؟

چون خیلی وخته پست هات رو دنبال میکنم تقریبا در مورد همه چی اطلاعاتت کامله از فیلم بگیر تا وب و سرور و ...

اگر واقعا اطلاعاتت انقدر قوی هست که این یعنی عالی و فوق العاده و واقعا بهت حسودیم شد !
 

007saeed

کاربر فعال کسب درآمد از اینترنت
کاربر فعال
تاریخ عضویت
21 مارس 2014
نوشته‌ها
2,902
لایک‌ها
3,202
سن
32
محل سکونت
بجنورد
تبریکات ما را پذیرا باشید :دی
اون نرم افزار کارش یه چیز دیگست هنوز نمیدونم چجوری کاربر اد کنم به کانال :D
نرم افزاری که با دو تا از دوستان طراحی کردیم برای زمانبندی پست هستش.
 

javadth

کاربر فعال پرشین تولز، همکار بازنشسته
کاربر فعال
تاریخ عضویت
28 جولای 2012
نوشته‌ها
13,902
لایک‌ها
15,990
محل سکونت
@takhfif_100

javadth

کاربر فعال پرشین تولز، همکار بازنشسته
کاربر فعال
تاریخ عضویت
28 جولای 2012
نوشته‌ها
13,902
لایک‌ها
15,990
محل سکونت
@takhfif_100
درگاه پرداخت خیلی خسته هستش

حوصله توضیحات نداره

شی3سیشسی31.JPG
 

rezatak6

کاربر فعال کسب درآمد از اینترنت
کاربر فعال
تاریخ عضویت
3 ژوئن 2014
نوشته‌ها
3,311
لایک‌ها
1,906
ترم آخر خر است :general710:
 

Ehsan_king99

Registered User
تاریخ عضویت
3 فوریه 2011
نوشته‌ها
2,569
لایک‌ها
6,516
محل سکونت
هرمزگان
اول از همه سوالی که پرسیدی در مورد دو بحث جداست ، یکی ذخیره پسورد ها و یکی هم یپام رد بدل شده بین کاربرها.

عموما برای ذخیره پسورد از روش هش (Hash) کردن استفاده و برای تبادل پیام هم از روش رمزگذاری (Encrypting) استفاده شده ، که این از نظر عملکرد با هم تفاوت دارن.
حالا در مورد هر کدوم یک توضیح کوتاه میدم
اول هش (Hash) : هش یک رشته ای از کاراکترها ایجاد شده از یک مقدار ورودی هست (بر اساس یک الگوریتم مشخص مقدار ورودی هش میشه) که دارای یک طول ثابت هست و به طور کامل با مقدار ورودی اولیه متفاوت هست . از نظر تئوری بهترین الگوریتم هش ، الگورتیمی هست که ، امکان تبدیل هش به مقدار اولیه اش غیر ممکن باشه.
از محبوب ترین الگورتیم های هش هم میشه به MD5 و SHA شامل (SHA-0, SHA-1, و SHA-2) اشاره کرد.
مورد استفاده هش : ایده ال ترین مورد استفاده از هش ، برای ذخیره پسورد ها هست ، به دلیل ذات طبیعی هش که یک طرفه هست (هدف اصلی هش ایجاد یک مقدار هست و قرار نیست که مقدار هش شده به مقدار اولیه برگشته بشه) ، امکان دسترسی به مقدار اولیه رو دشوار میکنه (البته بسته به الگوریتم مورد استفاده هم هست)
برای مثال وقتی یک کاربر میخواهد لوگین کنه ، وقتی نام کاربری و رمز عبورش رو وارد میکنه ، شما رمز عبور میگیرید و هش میکنید و با مقدار که توی دیتابس برای کاربر ذخیره شده مقایسه اش میکنید و باقی قضایا.
حالا اینکه استفاده به این صورت بهترین روش هست یا نه و روش هایی با امنیت بیشتر هم هست ، در موردش پایین تر توضیح میدم.

دوم رمزگذاری (Encrypting) : رمزگذاری به تبدیل کردن داده ها به یک مجموعه ای از کاراکترهای غیر قابل خوانا ، با استفاده از یک کلید خاص ، که دارای طول ثابت نیستند گفته میشه ، تقاوت اصلی بین رمزگذاری و هش کردن این هست که توی رمزگذاری در صورت داشتن کلید میتونید رشته رمزگذاری شده رو به مقدار اولیه اش برگردونید.
توضیح ساده : تو رمزگذاری یک کلید مثل یک رمزعبور هست که شما باهاش میتونید یک گاو صندوق رو باز کنید ، برای رمزگذاری یک پیام ، فرستنده پیام رو توی گاوصندوق میزاره و با کلیدی که داره گاوصندوق رو قفل میکنه . زمانی که گاوصندوق ققل شد ، هیچ کس نمیتونه پیام رو بخونه مگر اینکه به کلید دسترسی داشته باشه ،گیرنده از یک کلید استفاده میکنه و گاوصندوق رو باز میکنه و پیام رو بیرون میکشه (یا همون رمز گشایی).
حالا دو نوع اصلی رمزگذاری وجود داره ، یکی رمزگذاری کلید متقارن (symmetric key encryption) یکی هم رمزگذاری کلید عمومی (public key encryption) ، به این روش رمزگذاری کلید نامتقارن هم میگن.

در رمزگذاری متقارن ، هر دو فرستنده و گیرنده یک کلید دارن و مجبورن که اون کلید رو با هم به اشتراک بزارن . به دلیل سرعت بیشتر اغلب از این روش استفاده میشه ، اما مشکلی که وجود داره ، اینکه وقتی که کلید بین دو نفر مشترک هست ، هیچ وقت نمیشه مطمئن بود که طرق مقابل کلید رو به اشتراک گذاشته یا نه.

در رمزگذاری نا متقارن (Public Key Encryption) : تو این روش از دو کلید استفاده میشه ، یک کلید عمومی (public key) و یک کلید شخصی (private key) . فرستنده پیام از کلید عمومی گیرنده استفاده میکنه تا پیام رو توی گاوصندوق گیرنده قرار بده (رمزگذاری)، کلید عمومی فقط برای قرار دادن پیام ها توی گاوصندوق گیرنده هست ، یعنی اینکه با وجود اینکه کلید عمومی گاوصندوق گیرنده رو باز میکنه ، اما هیچ دسترسی به محتویات داخلش نداره (فقط میتونه پیام رو قرار بده) به عبارت دیگه دسترسی یک طرفه باز هست.
حالا گیرنده برای خوندن پیام میاد از کلید شخصی خودش استفاده میکنه و پیام که فرستنده براش گذاشته رو میخونه (رمزگشایی میکنه) ، کلید شخصی فقط برای خود گیرنده هست و کسی دیگه ای بهش دسترسی نداره ، اینطوری میشه مطمئن شد که پیام ها رو فقط گیرنده میتونه بخونه.
پ.ن : کلید شخصی و کلید عمومی برای اینکه کار کنن توسط یکسری ریاضیات پیچیده به هم مرتبط میشن .

از محبوب ترین الگوریتم های رمزگذاری میشه به AES (نوع متقارن) و PGP (نوع کلید عمومی) اشاره کرد.



بالاتر گفتم که در مورد بهترین روش های ذخیر پسورد توضیج میدم ،
انواع روش ها رو یکی یکی توضیح میدم و در مورد خوبی و بدی هاشون هم اشاره میکنم.

اولین روش ذخیر به صورت متن ساده (Plain Text) : ساده ترین راه ذخیر پسورد هست ، به این صورت که میایید ، رمزعبور رو یکجایی تو دیتابس به صورت خوانا ذخیره میکنید و زمانی که کاربر بخواهد استفاده کتید ، خیلی راحت مقدار ورودی کاربر رو باهاش مقایسه میکنید.
از نظر امنیت ، این روش بدترین روش ممکن هست و اگر هکری بتونه دیتابس شما دسترسی پیدا کنه ، فقط کافیه اطلاعات کاربرهای شما کپی پست کنه ! در حال حاضر هیچ سایت مشهوری یا غیر مشهوری از این روش استفاده نمیکنه (البته سایت های ایرانی زیاد مطمئن نباشید ، نمونش فیسنما بود که نمیدونم کی هک شده بود و تمام اطلاعات کاربرها رو لو داده بود)

دومین روش استفاده از رمزگذاری ابتدایی : این روش همونطور که بالاتر در مورد رمزگذاری توضیح دادم با استفاد از یک کلید ، میاد پسورد رو کد گذاری اش میکنید و فقط در صورت داشتن کلید میتونی اون رو رمزگشایی کنید ، اما مشکلی که این روش داره این هست که اغلب ، کلید و پسورد کنار توی یک سرور ذخیره میشن و هکر با داشتن کلید میتونه اطلاعات رو دسترسی داشته باشه

سومین روش استفاده از هش : این روش هم بالاتر توضیح دادم ، شما میایید پسورد ها رو هش میکنه ، و رمز عبور رو به صورت رشته هایی ناخوانا ذخیر میکنید، مشکل این روش هم این که هکر ها می تونن ، پسوردهای شما رو دیکود کنن، الان با توجه به قدرت محاسباتی بالای کامپیوتر و همچین وجود ابزار مثل جدول رنگین کمان (لیست شامل تریلیون ها رمز های مختلف با هش شون هست) ، کار خیلی سختی نیست.

چهارمین روش استفاده از هش با پاشیدن کمی نمک ! (Hashed with Salt) : تو این روش منطور پاشیدن نمک ، اضافه کردن یک رشته کاراکتری رندم (که بهش Salt میگیم) به ابتدای یا انتهای هش هست. اینجا ما میاییم برای هر پسورد هش شده یک salt مجزا تخصیص میدیم و اینطوری به دلیل اینکه هر Salt رشته طولانی و پیچیده یکتا هست ، کار هکر سخت میشه ، بهترین حالت استفاد از Salt این هست بیاییم Salt رو تو یک سرور مجزا ذخیره کنیم ، اما حتی اگر جفت شون هم تو یک سرور باشن ، باز هم کار هکر هایی که از جدول رنگین کمان استفاده میکنن ، خیلی سخت میشه.



روش پنجم استفاده از هش های کند (Slow Hashes): در حال حاضر این روشی هست که کارشناس های امنیتی پیشنهاد به استفاده ازش میکنن ، تو هش کردن با استفاده از تابع هایی مثل MD5, SHA-1 و.. سرعت به صورت نسبی بالاست ، منظورم این هست که شما وقتی یک رشته رو با MD5 هش میکنید ، خیلی سریع براتون ایجاد میکنه ، این میتونه برای هکرها زمانی که حمله brute force انجام میدن ، یک امتیاز مثبت باشه .
حالا وقتی شما از یک الگوریتم مثل pbkdf2 یا bcrypt برای هش کردن استفاده کنید ، که زمان بیشتری میگیره ، باعث میشه کار هکرها تو حمله های brute force خیلی خیلی بیشتر طول بکشه (به دلیل اینکه دیکود هر پسورد زمان بیشتری رو برای محاسبه میخواهد)
فوق العاده و کامل بود:general601:ممنون:general205:
فقط یه سوال تو روش symmetric key encryption به اون کلیده . salt یا password میگن ؟
 
Last edited:

aalireza439

کاربر فعال وب مسترها
کاربر فعال
تاریخ عضویت
5 ژانویه 2009
نوشته‌ها
3,563
لایک‌ها
7,670
محل سکونت
Golestan
سلام
علیرضا اطلاعاتت فوق العادست
فقط تروخدا اینی که میپرسم ناراحت نشو واقعا برام خیلی جالب شد
الآن برای مثال این پستی که دادی این اطلاعات رو از جایی پیدا کردی و گفتی یا نه میدونستی و نوشتی ؟

چون خیلی وخته پست هات رو دنبال میکنم تقریبا در مورد همه چی اطلاعاتت کامله از فیلم بگیر تا وب و سرور و ...

اگر واقعا اطلاعاتت انقدر قوی هست که این یعنی عالی و فوق العاده و واقعا بهت حسودیم شد !
اغلب اوقات قبلش در مورد موضوع تحقیق میکنم ، تا مطمئن بشم اطلاعات که میدم ، اشتباه نباشه.
بعدش سوال هایی که پرسیده میشه ، اکثرشون در مورد چیزهایی هست که باهاشون سر و کار داریم ، بیشترشون قبلا برای خودمون هم سوال بوده که دنبال جوابش بودیم.
 

MOHAMMAD026_1

مدیر بازنشسته
تاریخ عضویت
16 ژوئن 2014
نوشته‌ها
5,065
لایک‌ها
8,693
محل سکونت
ROOT
این نرم افزارهایی که( مثلن پسورد) رو تبدیل به کد میکنن چه جوریاس؟؟؟
یعنی مثلن میگه اگه عدد 1 بود تبدیلش کن به au ؟همیشه تبدیلش میکنه به این؟
اگه همیشه باشه اینجوری که راحت میشه رمز گشاییش کرد؟
کلن در رابطه با رمزنگاری کردن میخوام بدونم چی سرچ کنم؟(مثلن اینی که میگن شبکه های اجتماعی براپیاما انجام میدن مثه تل گرام اینا..)
@MOHAMMAD026_1 , @aalireza439 و سایر دوستان...
علیرضا مفصل و کامل توضیح داد :D :general712:
درگاه پرداخت خیلی خسته هستش

حوصله توضیحات نداره

مشاهده پیوست 911375
آنقدر هم خسته نیست دیگه :D
upload_2016-2-26_20-46-30.png
 

javadth

کاربر فعال پرشین تولز، همکار بازنشسته
کاربر فعال
تاریخ عضویت
28 جولای 2012
نوشته‌ها
13,902
لایک‌ها
15,990
محل سکونت
@takhfif_100
علیرضا مفصل و کامل توضیح داد :D :general712:

آنقدر هم خسته نیست دیگه :D
مشاهده پیوست 911384
اینا مال این بید ؟

http://dargahpardakht.com/

اینا برای درخواست هستش

نه وریفای ، برای وریفای ایناس

$errorCode = array(
-3 => 'مبلع ارسال صحیح نمی باشد',
-1 => 'پارامترهای ارسالی صحیح نمی‌باشد',
0 => 'پرداخت با موفقیت انجام نشده است',
1 => 'تراکنش با موفقیت انجام شده است',
);
 

MOHAMMAD026_1

مدیر بازنشسته
تاریخ عضویت
16 ژوئن 2014
نوشته‌ها
5,065
لایک‌ها
8,693
محل سکونت
ROOT
اینا مال این بید ؟

http://dargahpardakht.com/

اینا برای درخواست هستش

نه وریفای ، برای وریفای ایناس

$errorCode = array(
-3 => 'مبلع ارسال صحیح نمی باشد',
-1 => 'پارامترهای ارسالی صحیح نمی‌باشد',
0 => 'پرداخت با موفقیت انجام نشده است',
1 => 'تراکنش با موفقیت انجام شده است',
);
برای dargahpardakht هست
آره این عکسی ک دادم برای درخواست هستش
اون عکس ک دادی، برای بخش درخواست و وریفای(برگشت از درگاه، چک کردن مبلغ، کد پیگیری و...) هست
فقط جهان پی کد هارو تریب بندی کرده و داخل یه array آورده
ولی برای درگاه پرداخت بصورت جداگانست
 

javadth

کاربر فعال پرشین تولز، همکار بازنشسته
کاربر فعال
تاریخ عضویت
28 جولای 2012
نوشته‌ها
13,902
لایک‌ها
15,990
محل سکونت
@takhfif_100
الان منظور از درگاه اختصاصی که جهان پی و درگاه پرداخت میدن چی هستش ؟

برنامه نویسیش چطوریه
تعداد خطاها کمتر میشه ؟
 

aalireza439

کاربر فعال وب مسترها
کاربر فعال
تاریخ عضویت
5 ژانویه 2009
نوشته‌ها
3,563
لایک‌ها
7,670
محل سکونت
Golestan
فوق العاده و کامل بود:general601:ممنون:general205:
فقط یه سوال تو روش symmetric key encryption به اون کلیده . salt یا password میگن ؟
Salt برای این بود که ، بخواهید هش که دارید رو بهش اضافه کنید و کار هکر ها رو برای پیدا کردن پسورد سخت تر کنید و ربطی به رمزنگاری نداره.
کلید (Key) تو روش symmetric key encryption یک رشته کاراکتر هست که ، با داشتن اون می تونید داده رمزگذاری شده رو بهش دسترسی پیدا کنید ، تو روش Asymmetric هم کلید شخصی (private key) همین کار رو میکنه.

پ.ن: الان رفتم رای دادم ، خیلی ها بیرون دم در ایستاده بود ، میگفتن رای فروشی داریم ، خیلی بده برای 30-40 تومن حاضرن رای شون رو بفروشن (صبح صندوق ها خلوت بود ، همه گذاشتن شب بشه ، قیمت ها بالاتر بره) :android09:
 
بالا