PDA

View Full Version : چگونگه می توان تابع رمزنگاری بغیراز توابع ازپیش ساخته شده ی مانند MD5 یا hash را ساخت؟



adelante94
شنبه 12 بهمن 1392, 11:36 صبح
با سلام
من چطوری میتونم تابعی بنویسم که رمزنگاری برروی داده های ورودی به دیتابیس رو در php که مختص خودم باشه؟

aliphp1
شنبه 12 بهمن 1392, 12:11 عصر
می تونید خودتون یه الگوریتم تولید کنید مثلا به جای هر حرفی یه عدد چند رقمی بذارید و یا مثلا به کد اسکی یکی اضافه کنید و یا هر کاری که به فکر تون می رسه
یه کاری هم می تونید بکنید اینکه همین الگوریتم های موجود رو با هم ترکیب کنید

mehdytux
شنبه 12 بهمن 1392, 12:22 عصر
دوست عزیز ، ساده است شما باید به شدت ریاضیات تمرین کنید. رمز نگاری ریاضیات محضه

adelante94
شنبه 12 بهمن 1392, 18:19 عصر
متشکرم از جوابتون.
فقط می خواستم بدونم این چه جور امنیتیه که توسط MD5 یا بقیه توابع دیگه بوجود میاد که خروجی encrypt شده رو همه باز می تونن decrypt کنن.
مثلا وقتی من پسورد رو با یکی از همین توابع رمزگذاری میکنم خوب آقای نفوذگر میاد کد منو به یکی از همین توابعش میزنه و پسوردام رو میشه .!!!

2undercover
شنبه 12 بهمن 1392, 20:13 عصر
متشکرم از جوابتون.
فقط می خواستم بدونم این چه جور امنیتیه که توسط MD5 یا بقیه توابع دیگه بوجود میاد که خروجی encrypt شده رو همه باز می تونن decrypt کنن.
مثلا وقتی من پسورد رو با یکی از همین توابع رمزگذاری میکنم خوب آقای نفوذگر میاد کد منو به یکی از همین توابعش میزنه و پسوردام رو میشه .!!!

با اجازه کاربر eshpilen:

http://www.hamidreza-mz.tk/?page_id=723

می تونید مقالات قسمت امنیت وبلاگ ایشون رو بخونید.

SA_Developer
شنبه 12 بهمن 1392, 20:49 عصر
متشکرم از جوابتون.
فقط می خواستم بدونم این چه جور امنیتیه که توسط MD5 یا بقیه توابع دیگه بوجود میاد که خروجی encrypt شده رو همه باز می تونن decrypt کنن.
مثلا وقتی من پسورد رو با یکی از همین توابع رمزگذاری میکنم خوب آقای نفوذگر میاد کد منو به یکی از همین توابعش میزنه و پسوردام رو میشه .!!!
شما چطور میخوای MD5 رو بشکنی؟ حتی اگر آقای نفوذگر کد شما رو هم ببینه کاری نمیتونه بکنه چون این توابع هش یک طرفه هستن یعنی برای شکستن MD5 ، SHA256 و ... تابعی وجود نداره تنها راه حدس زدن پسورد اصلی به روش Brute force هست.

ویرایش: گفته من به این معنی نیست که فقط MD5 برای encrypt کردن کافیه. چون خروجی یک رشته رمز شده در MD5 همیشه یکسانه اگر نفوذگر به پسورد هش شده با MD5 دسترسی پیدا کنه احتمال داره براحتی کرک بشه چون خیلی از سایت ها لیست خیلی بزرگی از پسوردهای کرک شده با MD5 رو دارن مثلا اگر پسورد کاربر 123456 باشه و شما فقط برای رمز نگاری از MD5 استفاده کرده باشی خیلی راحت کرک میشه . برای رفع این مشکل باید از salt (http://en.wikipedia.org/wiki/Salt_%28cryptography%29) استفاده کنید.

eshpilen
یک شنبه 13 بهمن 1392, 09:02 صبح
MD5 مدتهاست از استانداردها خارج شده. سوراخ هم شده.
ضمنا MD5 برای کاربردی مثل هش پسورد ساخته نشده.
برای هش کردن پسورد بهتره از الگوریتم های اختصاصی هش پسورد مثل bcrypt (http://www.hamidreza-mz.tk/?p=695) یا scrypt استفاده بشه؛ یا حداقل از یه چیزی مثل این: http://www.hamidreza-mz.tk/?p=519
البته این الگوریتمی رو که بنده طراحی و استفاده کردم توصیه نمیکنم، ولی حداقلش از MD5 و این حرفا خیلی بهتره.

abolfazl-z
یک شنبه 13 بهمن 1392, 12:49 عصر
MD5 مدتهاست از استانداردها خارج شده. سوراخ هم شده.
ضمنا MD5 برای کاربردی مثل هش پسورد ساخته نشده.
برای هش کردن پسورد بهتره از الگوریتم های اختصاصی هش پسورد مثل bcrypt (http://www.hamidreza-mz.tk/?p=695) یا scrypt استفاده بشه؛ یا حداقل از یه چیزی مثل این: http://www.hamidreza-mz.tk/?p=519
البته این الگوریتمی رو که بنده طراحی و استفاده کردم توصیه نمیکنم، ولی حداقلش از MD5 و این حرفا خیلی بهتره.

درسته منم دیگه نمی خواهم در پروزه هام از MD5 برای پسورد استفاده کنم.
ولی برای استفاده های دیگر مانند استفاده در سشن برای ذخیره سرایند های ارسالی از کاربر و... مشکلی ندارد ؟

اگر خودمون هش بنویسیم(حالا نمی خام بگم بهتر از این توابعی که نام بردید هست) بهتر نیست ؟

یعنی درواقع هکر نمیدونه ما چی استفاده کردیم !

نه این هش هایی که جای 2 چهار و جای a A میزارند.

SA_Developer
یک شنبه 13 بهمن 1392, 14:27 عصر
eshpilen (http://barnamenevis.org/member.php?148005-eshpilen) جان
منم گفتم که MD5 برای اینکار کافی نیست و به salt اشاره کردم که خودتون خوب میدونید چیه و نگفتم فقط برای پسورد استفاده میشه اون فقط مثال بود.
چون گفتن وقتی نفوذگر بیاد و کدهای ما رو ببینه میتونه برای کرک کردن ازش استفاده بکنه، من گفتم که این توابع یکرفه هستن.
خود PHP هم استفاده از MD5 رو برای هش کردن پسورد توصیه نکرده (http://ir1.php.net/manual/en/faq.passwords.php#faq.passwords.fasthash)هر چند هنوز خیلیا با استفاده از salt و.. تا حد قابل قبولی این توابع رو قوی کردن.

abolfazl-z
یک شنبه 13 بهمن 1392, 17:47 عصر
حالا ما اول یک الگوریتم hash برای خودمون میسازیم. بعد با اون میاییم پسورد رو هش و سپس با تابع های خود PHP دوباره هش خودمون رو هش میکنیم (هش تو هش شد:لبخند:)
http://ir1.php.net/manual/en/ref.password.php
نظر شما چیست ؟

ولی یک خروجی 60 کاراکتری درست میشه و این حجم رو زیاد میکنه اگر بیاییم همین رو باز با md5 هش کنیم دیگه کمتر میشه و اینطوری دیگه امنیت بالا میره.

نظر شما چیست ؟

eshpilen
دوشنبه 14 بهمن 1392, 08:20 صبح
ولی برای استفاده های دیگر مانند استفاده در سشن برای ذخیره سرایند های ارسالی از کاربر و... مشکلی ندارد ؟
دقیقا یعنی چی مثلا؟
در امنیت و رمزنگاری اکثر وقتا نمیشه حرف کلی و مطلقی زد، بخصوص که مسئله بصورت کلی و مبهم مطرح شده باشه. باید جزییات کامل مشخص باشه. دقیقا چی رو برای چی و چطوری میخواید هش کنید؟

از MD5 هنوز هم در بعضی کاربردها میشه استفاده کرد، ولی تشخیص این موارد نیاز به تخصص و کارشناسی داره، و با این حال بازم بعضی از متخصصان در این مورد ممکنه نظر مساعدی نداشته باشن به دلایل مختلف. بنابراین ترجیحا از MD5 کلا استفاده نشه بهتره.


اگر خودمون هش بنویسیم(حالا نمی خام بگم بهتر از این توابعی که نام بردید هست) بهتر نیست ؟

یعنی درواقع هکر نمیدونه ما چی استفاده کردیم !

نه این هش هایی که جای 2 چهار و جای a A میزارند.
دست بردن در مسائل رمزنگاری و ساخت الگوریتم و این حرفا نیاز به تخصص داره و دست کم گرفتن و اشتباهات فاحش از جانب افراد غیرمتخصص در این زمینه بسیار راحت و متداول است.
بنابراین همیشه توصیه میشه از الگوریتم های استاندارد استفاده کنید و از نوشتن الگوریتم های شخصی اجتناب کنید.
اصولا حتی در بین متخصصان رمزنگاری هم رویهء کار اینکه که الگوریتمی رو که خودشون طراحی کردن عمومی میکنن تا مورد بررسی و تجربهء بقیه قرار بگیره و ضعف های احتمالیش مشخص بشن. یعنی حتی متخصصان علم رمزنگاری هم بطور معمول روی یک الگوریتم شخصی پنهان اتکا نمیکنن و نباید هم بکنن. تاریخ و تجربه این مسئله رو ثابت کرده که بالاترین امنیت رو با اطمینان کافی فقط وقتی میشه بدست آورد که حداکثر چشمها و مغزها روی اون کار کرده باشن (بخصوص چشم و مغز متخصصان این رشته).

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

اتکا بر پنهان بودن و پنهان ماندن الگوریتم هم میشه «امنیت از طریق تیرگی (http://barnamenevis.org/showthread.php?325263-security-through-obscurity&highlight=%D8%AA%DB%8C%D8%B1%DA%AF%DB%8C)».
و امنیت از طریق تیرگی هم در علم امنیت و رمزنگاری امروزه قابل قبول نیست. اونم الگوریتمی که افراد غیرمتخصص طراحی کرده باشن. اصلا هیچ اعتبار و اطمینانی بهش نخواهد بود. این مسئله امروزه مورد قبول تقریبا تمام متخصصان امنیت و رمزنگاری است.
هیچوقت فرض نکنید که الگوریتم شما میتونه برای همیشه پنهان بمونه. و خیلی وقتا حتی بدون دانستن الگوریتم هم خیلی کارها ممکنه. با تکیه بر پنهان ماندن الگوریتم، شما مسئلهء «پنهان نگه داشتن کلید» رو با مسئلهء «پنهان نگه داشتن الگوریتم» عوض کردید، و این کار شما رو راحتتر و امن تر نمیکنه، بلکه دشوارتر و ناامن تر میکنه.
اگر شما فکر میکنید جایی هست که شما میتونید اطلاعات محرمانه ای رو با مدت و اطمینان کافی در اونجا نگهداری کنید، پس بجای درج کل الگوریتم شخصی خودتون در اونجا، میتونید فقط یک کلید رو در اونجا نگهداری کنید. بعد این کلید رو در جریان عملیات رمزنگاری مثل هش کردن، دخالت میدید. به این شکل بدون اینکه نیازی به اختراع و محرمانه نگه داشتن یک الگوریتم و خارج شدن از استانداردها و توصیه های تخصصی داشته باشید، میتونید امکان کرک بدون دسترسی به اون کلید رو از بین ببرید. به این نوع کلید که در جریان هش بکار میره به اصطلاح pepper گفته میشه.

eshpilen
دوشنبه 14 بهمن 1392, 08:27 صبح
هر چند هنوز خیلیا با استفاده از salt و.. تا حد قابل قبولی این توابع رو قوی کردن.
قابل قبول؟
منکه تاجاییکه اطلاعات دارم فکر نمیکنم با هیچ سند و استدلال و مرجع معتبری بشه چنین حرفی زد.
اصولا md5 دیگه اونم برای هش پسورد، قابل قبول نیست.
هرچند بهرحال با salt وضعش بهتر میشه (و با key stretching بازهم بهتر)، ولی بازم فکر نمیکنم بشه با استانداردها و امکانات امروزی بشه به این کار گفت قابل قبول.

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

eshpilen
دوشنبه 14 بهمن 1392, 08:30 صبح
حالا ما اول یک الگوریتم hash برای خودمون میسازیم. بعد با اون میاییم پسورد رو هش و سپس با تابع های خود PHP دوباره هش خودمون رو هش میکنیم (هش تو هش شد:لبخند:)
http://ir1.php.net/manual/en/ref.password.php
نظر شما چیست ؟

ولی یک خروجی 60 کاراکتری درست میشه و این حجم رو زیاد میکنه اگر بیاییم همین رو باز با md5 هش کنیم دیگه کمتر میشه و اینطوری دیگه امنیت بالا میره.

نظر شما چیست ؟
نظر بنده این است که به این کار نیازی نیست و نباید هم انجام بشه.
توصیه و قانون کلی رو درنظر داشته باشید که بدون تخصص و فرایند تخصصی خودش، از اختراع و دستکاری الگوریتم های امنیتی/رمزنگاری اجتناب کنید. از الگوریتم ها و روشهای استانداردی که توسط متخصصان طراحی شدن و بصورت عمومی شناخته شده و مورد سالها تجربه و بررسی باز بودن استفاده کنید.
60 کاراکتر هم امروزه روز دیگه حجم و مشکلی نیست که بخواید نگرانش باشید و بخاطرش خودتون رو به زحمت بندازید، چه برسه به اینکه مسائل حساس امنیت و رمزنگاری رو انگولک کنید.

eshpilen
دوشنبه 14 بهمن 1392, 08:33 صبح
یادم هست مدتی قبل، یک نفر همینطوری اومده بود الگوریتم هش رو دستکاری کرده بود، بعد بنده که بررسیش کردم متوجه شدم اشتباه فاحشی مرتکب شده و مقدار زیادی از آنتروپی پسورد رو عملا از بین برده بود! فقط یک مورد هم نبوده. حداقل دو سه مورد اینطوری دیدم تاحالا.

abolfazl-z
دوشنبه 14 بهمن 1392, 10:00 صبح
مهندس میتونین چند تا از بهترین توابع هش پسورد رو نام ببرید ؟

SA_Developer
دوشنبه 14 بهمن 1392, 17:30 عصر
قابل قبول؟
منکه تاجاییکه اطلاعات دارم فکر نمیکنم با هیچ سند و استدلال و مرجع معتبری بشه چنین حرفی زد.
اصولا md5 دیگه اونم برای هش پسورد، قابل قبول نیست.
هرچند بهرحال با salt وضعش بهتر میشه (و با key stretching بازهم بهتر)، ولی بازم فکر نمیکنم بشه با استانداردها و امکانات امروزی بشه به این کار گفت قابل قبول.

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

دوست عزیز شما از اون آدمایی هستی که دیر متوجه منظور آدم میشن یا اونایی که فکر میکنن خیلی میدونن؟
من نگفتم با Salted MD5 همه چیز حله گفتم "تا حد قابل قبول" شما قابل قبول به چی میگی؟ حداکثر امنیت؟
منم میگم وقتی ورژن PHP شما password_hash رو ساپورت میکنه حتما ازش استفاده کنید. همین وردپرس تو ورژن های قدیمی تر از Salted MD5 استفاده میکرد و قابل قبول بود اما الان از PHPass استفاده میکنه که خود PHPass هم در صورت نیاز Salted MD5 رو بکار میگیره.



میتونین چند تا از بهترین توابع هش پسورد رو نام ببرید ؟ http://php.net/manual/en/function.password-hash.php
http://www.sitepoint.com/hashing-passwords-php-5-5-password-hashing-api/

موفق باشید.

eshpilen
دوشنبه 14 بهمن 1392, 17:50 عصر
من نگفتم با Salted MD5 همه چیز حله گفتم "تا حد قابل قبول" شما قابل قبول به چی میگی؟ حداکثر امنیت؟
قابل قبول یعنی قابل قبول دیگه :لبخند:
از دید بنده قابل قبول نیست. با توجه به دانش و استانداردهایی که سراغ دارم.
وقتی الگوریتم های مخصوص هش هست (با امنیت ده ها و صدها و هزاران برابر)، وقتی md5 اینقدر قدیمی و سوراخ شده است، توجیهی نداره که ازش استفاده کنیم، مگر اینکه دلیل و سند قانع کننده تری داشته باشیم (یجورایی مجبور باشیم).
حتی منم که در پروژهء سیستم رجیستر و لاگین خودم از SHA256 استفاده کردم با salt و pepper و key stretching کارم استاندارد نبود و ازش دفاع و توصیه نمیکنم، و در اصل بخاطر مشکل عدم ساپورت bcrypt که روی یک هاست و نسخهء نسبتا جدید PHP (اون موقع) دیدم ازش استفاده کردم. ولی دیگه md5 واسه پروژه های جدید هیچ توجیهی نداره و مسخره است؛ حداقل برای هش پسورد.


همین وردپرس تو ورژن های قدیمی تر از Salted MD5 استفاده میکرد و قابل قبول بود اما الان از PHPass استفاده میکنه که خود PHPass هم در صورت نیاز Salted MD5 رو بکار میگیره.این برنامه ها اولا از خیلی قدیم تر نوشته شدن و واسه کاربردهای قدیمی و backward compatibility خیلی وقتا به همین رویه ادامه دادن یا حداقل ساپورت و fall back دارن براش. در ضمن این برنامه ها لزوما معیار و استاندارد مسائل امنیت و رمزنگاری نیستن (حتی نسخه های جدیدشون).
شما اگر از بنده میپرسید بنده بر اساس این برنامه و اون برنامه نظر نمیدم، بلکه بر اساس منابع درجه یک و معتبر و علمی رمزنگاری نظر میدم. اینکه وردپرس یا حتی فیسبوک چکار کرده و میکنه که در یک مسئلهء علمی و حساس دلیل و سند کافی نمیشه به خودی خودش. میشه؟ روش علمی و مسائل آکادمیک، با توسل به این و اون نیستن، بلکه بر اساس تئوری هاش و محاسبه و ریاضیات و نظر و تحلیل دانشمندان و متخصصان خودشه.
ضمنا استانداردهای حکومتی و نظامی رو هم معمولا بر همین اساس تهیه میکنن تاجاییکه میدونم.

البته نظرات بنده مسلما در سطح بالاست. من نمیگم همهء برنامه ها و کاربردها اینقدر جدی هستن، ولی بهرحال اصول و حداکثرش اینه. شخصا با چیزهای ضعیف و مورد تردید و حدس و تصور و خوش خیالی و کارهای مبتدیانه حال نمیکنم. از بنده نظر میخواید بنده نظرم در سطح امنیت استاندارد درحد یا نزدیک به استانداردهای حکومتی و نظامی است. حالا دیگه خود دانید؛ بقیش بحث روشن و با ارزشی نیست از دید بنده که بخوایم بهش بپردازیم. مثلا بیایم امنیت md5 سوراخ شده و درپیت رو که از اول هم برای این کاربرد ساخته نشده چطور تحلیل کنیم چطور چه درجهء امنیتی بهش بدیم برای چه کاربردهایی تضمینش کنیم، بعد که چی بشه چه ارزشی داره وقتی الگوریتم های خیلی درست و حسابی تر امروزه تقریبا همه جا در دسترس هستن و هزینهء زیادی هم ندارن؟ مثل اینکه آدم بخواد یک فناوری قدیمی منسوخ شده رو تحلیل و ارزیابی و تبلیغ بکنه!

MRmoon
دوشنبه 14 بهمن 1392, 18:09 عصر
مهندس میتونین چند تا از بهترین توابع هش پسورد رو نام ببرید ؟

تابع بسورد هش در php 5.5

http://www.php.net/manual/en/function.password-hash.php

eshpilen
دوشنبه 14 بهمن 1392, 18:15 عصر
کجای کاری داداش! من خودمم قابل قبول نمیدونم :قهقهه:
اصلا بنظر من این وضع زندگی کلا قابل قبول نیست.
آدما خودشون هم قابل قبول نیستن.
جدی میگما! فکر کردی شوخی میکنم؟ :لبخندساده:

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

SA_Developer
دوشنبه 14 بهمن 1392, 18:19 عصر
من نخواستم بگم که اگر وردپرس چنین کاری کرده یعنی درسته اما به نظر من میشه گفت "قابل قبول" ( این قابل قبولم واسه خودش داستان شده :) )
و اصلا نخواستم MD5 رو تبلیغ کنم! شما از تو حرفام چنین برداشتی کردی؟ من تو پست اولم فقط گفتم که MD5 تابع هش یکرفطه هست و استفاده ازش برای هش پسورد رو توصیه نکردم نگفتم ازش استفاده کنید.
معلومه که از نظر منم وقتی توابع و الگوریتمهای بهتر و امنتری وجود داره نباید از Salted MD5 هم استفاده کرد و این کار احمقانه ایه.

SA_Developer
دوشنبه 14 بهمن 1392, 18:29 عصر
کجای کاری داداش! من خودمم قابل قبول نمیدونم :قهقهه:
پس بگو چرا اینقدر به "قابل قبول" حساس شدی ;-)


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

درک میکنم شدیدا !
بسیار سخته اما همیشه باید به خودمون بگیم که "تو هیچی بلد نیستی! برو یاد بگیر" این کلید موفقیته! من خودم همیشه میگم.
برات آرزوی موفقیت میکنم :چشمک:

adelante94
یک شنبه 20 بهمن 1392, 11:06 صبح
پس من به این نتیجه رسیدم که از خود php برای hash کردن پسوردها استفاده کنم.

http://www.php.net/manual/en/function.password-hash.php

reza303
چهارشنبه 21 اسفند 1392, 21:37 عصر
چه کاریه خب ؟
md5 رو موقع ایجاد با یه کد از خودتون ترکیب کنید بعد با sha1 جمع بزنید ! عمراً بشه بازش کرد .

omidabedi
پنج شنبه 22 اسفند 1392, 00:03 صبح
چه کاریه خب ؟
md5 رو موقع ایجاد با یه کد از خودتون ترکیب کنید بعد با sha1 جمع بزنید ! عمراً بشه بازش کرد .


ببین اینا patternهای هش هست که ازشون استفاده ی متداول شده و قابل شناسایی هست
حالا چیزی که شما گفتید هم مثله همینا فقط کافیه ی pattern رو کرکر تشخیص بده



MD5
MySQL
MD4
NTLM
SHA-1
SHA-256
SHA-384
SHA-512
MySQL5
LM
Domain Cached Credentials
md5(md5($pass))
md5(sha1($pass))
md5($pass.$salt)
md5($salt.$pass)
md5(md5($pass).$salt)
md5(md5($salt).$pass)
md5($salt.$pass.$salt)
md5($salt.md5($pass))
md5(md5($salt).md5($pass))
md5(md5($pass).md5($salt))
md5($username.0.$pass)
md5(1.$pass.$salt)
substr(md5($pass),0,16)
substr(md5($pass),8,16)
substr(md5($pass),16,16)
sha1(md5($pass))
sha1($pass.$salt)
sha1($username.$pass)
sha1(strtolower($username).$pass)
sha256(md5($pass))
sha256($pass.$salt)
sha256($salt.$pass)
sha512($pass.$salt)
sha512($salt.$pass)
DES(Unix)
MD5(Unix)
MD5(APR)
MD5(phpBB3)
MD5(Wordpress)
MD5(Unicode)