PDA

View Full Version : در خواست فانکشنی شبیه MD5



Tarragon
سه شنبه 30 خرداد 1391, 17:51 عصر
سلام
من یه فانکشن می خوام شبیه MD5 که :
اولا معروف نباشه آخه مثلا MD5 یه جوری شده که کم کم داره دیکد اون تو سایت های مختلف میاد.
دوما می خوام دیکد اون هم پیدا بشه .
اگر کد مخصوصی هم می شه نوشت ممنون می شم اگر کمکم کنید .
پیشاپیش از کمک هاتون ممنونم.

MMSHFE
سه شنبه 30 خرداد 1391, 21:08 عصر
دوست گرامی PHP از انواع و اقسام رمزنگاری پشتیبانی میکنه.


md2
md4
md5
sha1
sha224
sha256
sha384
sha512
ripemd128
ripemd160
ripemd256
ripemd320
whirlpool
tiger128,3
tiger160,3
tiger192,3
tiger128,4
tiger160,4
tiger192,4
snefru
snefru256
gost
adler32
crc32
crc32b
salsa10
salsa20
haval128,3
haval160,3
haval192,3
haval224,3
haval256,3
haval128,4
haval160,4
haval192,4
haval224,4
haval256,4
haval128,5
haval160,5
haval192,5
haval224,5
haval256,5

علاوه بر اینها خودتون هم میتونید توابع دلخواه رو بنویسید. حالا از بین اینها، یک تعداد یکطرفه هستن (مثل MD5) و برخی هم قابل رمزگشایی (مثل base64)
درسته که جداول Lookup تابع MD5 توی سایتهای مختلف وجود داره ولی میتونید با روشهایی مثل Salt و Pepper و Multiple Hash و Key Stretching و... امنیتش رو بالا ببرین.

reza10wert
سه شنبه 30 خرداد 1391, 21:16 عصر
از بین اینها کدوم بهتر و قوی تر است ؟

MMSHFE
سه شنبه 30 خرداد 1391, 21:51 عصر
بستگی به نحوه استفاده شما از اونها داره ولی فکر میکنم امنیت توابع سری SHA بالا باشه. مثل sha512 و...

Tarragon
چهارشنبه 31 خرداد 1391, 18:56 عصر
سلام
ببخشید sha512 دیکد هم می شه یه کد می خوام که دیکد بشه.

reza10wert
چهارشنبه 31 خرداد 1391, 19:00 عصر
base64_encode()

base64_decode()

eshpilen
چهارشنبه 31 خرداد 1391, 19:27 عصر
هدف/کاربردت چیه اصلا؟
میخوای چی رو تبدیل بکنی؟ واسه چی میخوای برگشت پذیر باشه؟
برای هرچیزی یه راهی هست. طبق یک اصول و دلایل و محاسباتی.

برای ذخیرهء پسوردها همون هش یک طرفه (بازگشت ناپذیر) بهتر از همه هست. اگر Salt+Pepper+Key stretching استفاده کنی امنیتش به حداکثر میرسه که روش قویتری هم سراغ ندارم. ضمنا تابع هش هم SHA256 یا SHA512؛ الگوریتم های مخصوص تر هم هست اما بعلت اطمینان از ساپورت فکر میکنم همون SHA3 کافی باشه (البته با اون Salt+Pepper+Key stretching که گفتم باید استفاده بشه).

برای ذخیرهء دیتایی که حتما باید برگشت پذیر باشه، باید از یک Cipher مثل AES استفاده کرد. یعنی بجای Hash میایم Encrypt میکنیم.

Tarragon
چهارشنبه 31 خرداد 1391, 20:24 عصر
من یه تابع می خوام که بشه راحت انکد و دیکد کرد.
در ضمن اگر یه دستور باشه که فقط خودم طریقه دیکدش رو بدونم مثلا یه فانکشن بنویسم که اون فانکشن خودش انکد کنه و یه فانکشن مربوط واسه دیکد ولی خودم دستورش رو بتونم ببینم.

MMSHFE
چهارشنبه 31 خرداد 1391, 20:32 عصر
خوب راه که زیاده. مثلاً میتونید کد ASCII یا Unicode کارکترها رو دریافت کنید و در 2 ضرب کرده و به توان 2 برسونید و بصورت رشته ای از اعداد که بینشون یکسری حروف الفبا بصورت Random درج شده قرار بدین. موقع رمزگشایی هم رشته حاوی اعداد و حروف رو بگیرین و برحسب حروف الفبا جدا کنید و بصورت آرایه ای از اعداد در بیارین و بعد جذر اعداد رو بدست آورده و نصف کنید تا دوباره به کد کارکترها برسین و بفهمین رشته اصلی چی بوده. البته این فقط یک مثاله. مهم اینه که ایده خاصی داشته باشین که با نگاه کردن به رشته کدگذاری شده، به راحتی نشه فهمید چطور میشه به رشته اصلی رسید.

Tarragon
چهارشنبه 31 خرداد 1391, 20:41 عصر
همه چیزش رو فهمیدم اما نمی دونم چطوری حروف الفبابصورت رندوم بینشون قرار بدم

eshpilen
چهارشنبه 31 خرداد 1391, 20:59 عصر
خوب راه که زیاده. مثلاً میتونید کد ASCII یا Unicode کارکترها رو دریافت کنید و در 2 ضرب کرده و به توان 2 برسونید و بصورت رشته ای از اعداد که بینشون یکسری حروف الفبا بصورت Random درج شده قرار بدین. موقع رمزگشایی هم رشته حاوی اعداد و حروف رو بگیرین و برحسب حروف الفبا جدا کنید و بصورت آرایه ای از اعداد در بیارین و بعد جذر اعداد رو بدست آورده و نصف کنید تا دوباره به کد کارکترها برسین و بفهمین رشته اصلی چی بوده. البته این فقط یک مثاله. مهم اینه که ایده خاصی داشته باشین که با نگاه کردن به رشته کدگذاری شده، به راحتی نشه فهمید چطور میشه به رشته اصلی رسید.
اینطور چیزها راههای اصولی ای نیستن.
اولا الگوریتم رمزنگاری رو به این سادگی و هرکسی نمیتونه بنویسه. خیلی حساب و کتاب داره.
البته اگر امنیت درپیت بخوایم میشه از این روشها استفاده کرد. ولی اگر امنیتی میخواید که در سطح جهانی باشه، فقط از الگوریتم های استاندارد مثل AES باید استفاده بشه. یا اینکه بقول طرف باید خودتون دکترا در تخصص رمزنگاری داشته باشید تا بتونید یک الگوریتم رمزنگاری بنویسید و استفاده کنید.
دوما الان شما مجبورید از «امنیت از طریق تیرگی» هم استفاده کنید؛ یعنی الگوریتم شما باید پنهان بمونه و امنیت شما بر پنهان بودن الگوریتم استواره. این خودش ضعف و مشکل اصولی دوم.
سوما بجای این کارها میتونیم براحتی از یک الگوریتم استاندارد به همراه یک کلید یکتا استفاده کنیم. میشه همش رو هم در یک تابع نوشت.

Tarragon
چهارشنبه 31 خرداد 1391, 23:12 عصر
آقا من جهانیش رو کاری ندارم .
من یه انکدر و دیکدر می خوام که کسی نتونه به طریقه رمز نگاری دست پیدا کنه همین ! الگوریتم و اینها رو هم کاری ندارم.

eshpilen
پنج شنبه 01 تیر 1391, 00:59 صبح
آقا من جهانیش رو کاری ندارم .
من یه انکدر و دیکدر می خوام که کسی نتونه به طریقه رمز نگاری دست پیدا کنه همین ! الگوریتم و اینها رو هم کاری ندارم.
عزیزم منم به شما کار ندارم. چون معلومه اطلاعات شما در زمینهء امنیت و رمزنگاری و در نتیجه کار شما در سطحی نیست که بخوایم یه جاش رو اینقدر حرفه ای و محکم درست کنیم. امنیت مثل یک زنجیره. اگر یک حلقه از اون ضعیف باشه، معمولا از همون جا پاره میشه؛ دیگه مهم نیست که بقیهء حلقه ها چقدر محکم بودن.

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

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

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

Tarragon
پنج شنبه 01 تیر 1391, 06:52 صبح
آقا من تسلیمم.
من فقط یه انکدر و دیکر می خوام همین دیگه چه اطلاعاتی بدم؟

Tarragon
پنج شنبه 01 تیر 1391, 12:15 عصر
استادان عزیز چی شد؟