PDA

View Full Version : رمزنگاری با کلید اختصاصی



Bahram0110
شنبه 13 مرداد 1386, 23:23 عصر
با چه توابعی می شه یه متن رو با استفاده از یک کلید به رمز در بیاریم؟
کدوم یک به نظر شما بهتره

moohssenn
یک شنبه 14 مرداد 1386, 00:39 صبح
خوب از md5 استفاده کن . نیازیم به کلید نداره چون غیر قابل بازگشته ( حداقل تا به حال )
اما اگه میخوای اطلاعاتت رو با یه کلید توی mysql ذخیره کنی , دوتا تابع خوب برای این کار داره
des_encrypt و des_decrypt

alireza82
یک شنبه 14 مرداد 1386, 03:00 صبح
سلام
اول یه کم در مورد الگوریتم های رمزنگاری با هم بخونیم:
سیستم های کدگذاری بر مبنای روش های کلید خصوصی (Private Key Systems) :
به این ها الگوریتم های متقارن میگن. در واقع تو این الگوریتم ها شما یه کلید داری که باهاش هر داده ای که میخوای رمز میکنی و همین کلید رو هم به هر کسی که میخوای متن رو رمز گشایی کنه میدی. یه سری از این الگوریتم ها :
DES, AES, IDEA, RC5, RC6, Blowfish, Twofish
سیستم های کدگذاری اطلاعات بر مبنای روش های کلید عمومی (Public Key Algorithms) :
که به این ها الگوریتم های نا متقارن میگن که شما دوتا کلید داری یه خصوصی و یه عمومی. هر چیزی که با کلید خصوصی رمز شه فقط با کلید عمومی رمز گشایی میشه و بلعکس یه سری از این الگوریتم ها: RSA, Elliptic Curve, Diffie-Helman
اما یه سری الگوریتم داریم به نام الگوریتم های هش مثل: MD2, MD5, SHA,SHA1
که این ها الگوریتم های یک طرفه هستند که تقریبا برگشت پذیریشون ناممکن هست. هر وقت داده ای به این الگوریتم ها بدی حالا هر چند تا کاراکتر که باشه یه رشته 128 کاراکتری خاص به نام اثر انگشت بهت میده. حالا چرا اثر انگشت چون هیچ دو متن ای نیست که اثر انگشتشون با هم برابر باشه مگر اینکه این دو با هم برابر باشند.
تقریبا تمام این الگوریتم ها تو php حالا چه به صورت تابع چه بصورت یه کلاس جدا پیاده سازی شدن. مثلا rsa تابع نداره ولی تو peer.php.net پیاده سازی شده. پیاده سازیش هم اصلا کار سختی نیست.
اما در کل میرسی به سوال شما:
شما بازم سوالت ربطی به کاری که میخواستی بکنی نداشت:ناراحت::لبخند:
چون تو تاپیکی که قفل شد گفته بودی که میخوام کوکی هام رو رمز کنم حالا من دوتا پیشنهاد دارم:
1- با توجه به اینکه هیچ دومتنی نیست که md5 اشون یکی باشه پس میتونی با md5 کردن متغییر هایی که میخوای تو کوکی بریزی و سپس هنگام کار با کوکی ها و بررسی اون ها مقدار md5 کوکی رو با md5 متغییر برابر قرار بدی که بفهمی مقدار کوکی چی بوده. مثلا:
میخوای تو کوکی بریزی alireza حالا بیا md5(alireza) رو بریز تو کوکی و برای کاربر بفرست. بعئ که میخوای بفهمی کوکی ای که برای کاربر ذخیره شده alireza است یا mohsen اون وقت مقدار کوکی رو بخون و باز alireza رو md5 کن اگر این دو تا برابر بودن کاری که میخوای رو بکن. که اگر یه پسر بدی هم کوکی رو خواست دست کاری کنه ندونه که اصلا چی بوده که حالا بیاد دست کاری کنه:بامزه:
یا بیا با استفاده از rsa متغییر کوکی رو با کلید خصوصیت رمز و بعد از اون هنگام بررسی باکلید عمومی رمز کشایی و کاری که میخوای رو انجام بده.
که روش اول به نظرم بهتره
یا بیا و یه ssl بگیر چون openssl بر مبنای الگوریتم های rsa و des کار میکنه و خودت رو درگیر الکی نکن.:چشمک:البته اینم نظری بود و ما گفتیم.
موفق باشید

alireza82
یک شنبه 14 مرداد 1386, 03:05 صبح
در ضمن با توجه به نام تاپیک و نه تاپیک قبلی هم جواب شما rsa
بهترین کار ssl البته به نظر من حالا اساتید چه نظری دارن خوشحال میشیم بشنویم
موفق باشی

oxygenws
یک شنبه 14 مرداد 1386, 03:26 صبح
برای این کار نیازی به دو کلید نیست، یک کلید کافی است!!