رمزنگاری و تولید چکیده (hash) پیام 128 بیتی با کلاس MHR1

شروع موضوع توسط Mohammad_Shams ‏13 سپتامبر 2010 در انجمن Action Script 3

  1. Mohammad_Shams

    Mohammad_Shams Member

    ارسال‌ها:
    68
    تشکر شده:
    155
    امتیاز دستاورد:
    6
    سلام

    چند تا پیشنهاد دارم:

    1. این قابلیت را به صورت یک تابع جدید به کلاس اضافه کنید، تا کاربرد قبلی کلاس از بین نرود.

    2.در صورت null بودن پارامتر KeyWord تابع جواب نمیدهد که باید اصلاح شود.

    3. در صورت null بودن کلید، هش بدست آمده با هش حاصل از نسخه اولیه کلاس یکسان باشد. (به دلیل backward compatiblity)

    4. کد بهینه شود. چرا بعضی متغیرها را دوبار تعریف کرده اید (مثلا آرایه)

    5. کلاسهایی که آپگرید میشوند، باید به شکلی تغییر کنند که شخصی که از نسخه قبلی آنها استفاده میکرده، بتواند بدون هیچ مشکلی از امکانات نسخه جدید در کنار امکانات قبلی استفاده کند.

    6. شیوه وارد کردن کلید به محاسبات هش مشکل دارد زیرا با کلیدهای متفاوت، هش یکسان تولید میکند. مثلا:

    کد (Text):

    import com.mshams.MHR2;
    var e:MHR2 = new MHR2();

    trace(e.getHash("mytext", "HadiMetal"));
    trace(e.getHash("mytext", "HadiMetalHadiMetal"));
    trace(e.getHash("mytext", "HadiMetalaaaaa"));
    trace(e.getHash("mytext", "HadiMetalsadgsdfgert"));
    trace(e.getHash("mytext", "HadiMetal1111111111"));
    trace(e.getHash("mytext", "HadiMetal2222222222222"));

    output:

    3412d8ce0951bf83fec9b8c547a13be6
    3412d8ce0951bf83fec9b8c547a13be6
    3412d8ce0951bf83fec9b8c547a13be6
    3412d8ce0951bf83fec9b8c547a13be6
    3412d8ce0951bf83fec9b8c547a13be6
    3412d8ce0951bf83fec9b8c547a13be6
     
     
    نوشته شده توسط Mohammad_Shams در ‏14 اکتبر 2010
    ++Hadi++ و BehrouzPc از این پست تشکر کرده اند.
  2. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,801
    امتیاز دستاورد:
    36
    به چشم ، به زودی ... انشاءال...
    فقط در مورد قابلیت جدید بهتر نیست خود همون سیستم null بودن keyword رو انجام بدیم ؟؟؟
    که دقیقا بشه همون حالت قبل منتها با وجود یه keyword که هر کس خواست ، اونو اعمال کنه ...
    ببخشین یه کم سرم خیلی شلوغ بود ولی سعی می کنم خیلی بهینه سازی بشه ...
    یه کم باید بشینم و سیستم اصلی این کلاس رو تحلیل کنم تا به بهترین وجه چیزیو که می خوام درست کنم . خوب یه راهی که به ذهنم به عنوان اولین راه می رسه که حتما می تونه اشتباه باشه اینه که ما keyword رو هم با همون روش hash معمولی به پسوورد تبدیل کنیم و این دو پسوورد 32 کاراکتری رو به نحوی با هم ترکیب کنیم و رشته نهایی از ترکیب این دو بوجود بیاد ، نظر شما چیه ؟؟؟
     
    نوشته شده توسط ++Hadi++ در ‏15 اکتبر 2010
  3. Mohammad_Shams

    Mohammad_Shams Member

    ارسال‌ها:
    68
    تشکر شده:
    155
    امتیاز دستاورد:
    6
    سلام

    فکر کنم اگر یک تابع جدید مثلا getKeyHash اضافه کنید بهتر باشد. چون ممکن است در آینده بخواهید امکانات و توابع بیشتری به کلاس اضافه کنید که به این شکل شناسایی و تفکیک امکانات جدید ساده تر میشود.

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

    روشهای Salted hash هم به این صورت عمل میکنند. بهتر از همه این است که خیالتان هم از بابت overflow شدن راحت میشود.
     
    نوشته شده توسط Mohammad_Shams در ‏15 اکتبر 2010
    ++Hadi++ از این پست تشکر کرده است.
  4. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,801
    امتیاز دستاورد:
    36
    سلام
    کلاس و سمپل ها در پست 17 این تایپیک دقیقا به درخواست محمد جان آپدیت شد ....
    موفق باشید ...
     
    نوشته شده توسط ++Hadi++ در ‏17 دسامبر 2010
    Mohammad_Shams از این پست تشکر کرده است.
  5. Mohammad_Shams

    Mohammad_Shams Member

    ارسال‌ها:
    68
    تشکر شده:
    155
    امتیاز دستاورد:
    6
    سلام

    دست شما درد نکنه.

    منتظر امکانات و قابلیتهای جدید از طرف شما هستیم.
     
    نوشته شده توسط Mohammad_Shams در ‏17 دسامبر 2010
    ++Hadi++ از این پست تشکر کرده است.
  6. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,801
    امتیاز دستاورد:
    36
    والا من یه سری library خارجی پیدا کردم که خیلی کامله و کل سیستم های hash و رمز گذاری رو داره و تقریبا همشون با ByteArray کار می کنن و در همشون ما یه key و یه الگریتم اصلی و رشته مورد نظرمونو در قالب Byte Array به کلاسها پاس می دیم . در کل این library خیلی عالیه و فک کنم اگه با اونا دنبال کنم بهتر باشه، چرا که طراحش ، عمری رو واسه طراحیش گذاشته و همه سیستم ها از جمله Iphon , IPad , Mozilla , MD2 , MD5 , ..... رو داره . در ضمن اونا سازگاری خاصی رو با همنوعانشون در C# .net دارند . یعنی دو تا پک هست . یکی واسه C# و یکی واسه as3 ، شاید بهتر باشه کلاس شما رو به سمت استفاده از ByteArray پیش ببریم .
    ولی اعتراف می کنم کلاس شما واقعا راه دسته و خیلی راحت می شه باهاش کار کرد .
    موفق باشید .
     
    نوشته شده توسط ++Hadi++ در ‏17 دسامبر 2010
    Mohammad_Shams از این پست تشکر کرده است.
  7. smhosseini61

    smhosseini61 New Member

    ارسال‌ها:
    29
    تشکر شده:
    3
    امتیاز دستاورد:
    3
    کد گذاری فیلم..

    محمد جان سلام محمد هستم از تهران خسته نباشید آقا محمد من یک پروژه دارم که کارفرمام میگه باید فیلمها رو کد گذاری کنه تا کسی اگر هم فیلمارو کپی کرد نتونه کسی ببینه میگم باید فیلمهار و embededdکرد ولی فیلمها حجمش بالا است و تو فلش نمیشه embededd کرد میشه راهنمایی کنید چیکار باید بکنم فیلمم هم پسوندش flv هستش وباید به صورت یک فیلم خارجی تو پروزم بیارمش
    ممنون اگر محبت کنید و مرا راهنمایی بفرمایید
     
    نوشته شده توسط smhosseini61 در ‏29 آگوست 2015
  8. Mohammad_Shams

    Mohammad_Shams Member

    ارسال‌ها:
    68
    تشکر شده:
    155
    امتیاز دستاورد:
    6
    سلام
    کار مشکلی نیست. از کتابخانه ای مانند as3 crypto استفاده کنید و تمام فایلها را encrypt کنید. سپس در برنامه در زمان باز کردن فایل آن را با FileStream باز کرده و مجددا Decrypt کنید.
    در صورتی که حجم و تعداد فایلها زیاد است، پیشنهاد میکنم جهت حفظ کارایی برنامه تنها بخش کوچکی از ابتدای فایل (به اصطلاح header آن) را encrypt نمایید تا در زمان بازگشایی زمان کمتری مصرف شود.
    پس:
    1. ابتدا با الگوریتم دلخواه یک Encrypter بنویسید و همه فایلها را رمز کنید.
    2. روش Decrypt را در برنامه پیدا کنید و موقع باز شدن فایل به کار ببرید.
     
    نوشته شده توسط Mohammad_Shams در ‏29 آگوست 2015
  9. smhosseini61

    smhosseini61 New Member

    ارسال‌ها:
    29
    تشکر شده:
    3
    امتیاز دستاورد:
    3
    با رو سیاهی تمام مهندس میتونم ازتون خواهش کنم یه نمونه برام بفرتسین یا یه نمونه کار درست کنم شما کدهای مورد نظر رو داخلش وارد کنید هرچی میخونم و زیرو رو میکنم به نتیجه نمیرسم امکان داره !!!!!!
     
    نوشته شده توسط smhosseini61 در ‏30 آگوست 2015
  10. Mohammad_Shams

    Mohammad_Shams Member

    ارسال‌ها:
    68
    تشکر شده:
    155
    امتیاز دستاورد:
    6
    سلام، فرصت نشد کدی برایتان بنویسم اما بیشتر چیزی که نیاز دارید در لینک زیر تشریح شده:
    http://www.ghostwire.com/blog/archives/as3-applying-rot128-encryption-on-binary-xml/
     
    نوشته شده توسط Mohammad_Shams در ‏22 سپتامبر 2015
  11. smhosseini61

    smhosseini61 New Member

    ارسال‌ها:
    29
    تشکر شده:
    3
    امتیاز دستاورد:
    3
    مهندس شمس از شما که طلب نداشتی همین که لطف کردین وقت گذاشتین دستتونو روی کیبورد فشار دادین و جواب منو دادین یک ئنیا ارزش داشته ممنونم بی نهایت
     
    نوشته شده توسط smhosseini61 در ‏23 سپتامبر 2015
  12. smhosseini61

    smhosseini61 New Member

    ارسال‌ها:
    29
    تشکر شده:
    3
    امتیاز دستاورد:
    3
    مهندس شمس از شما که طلب نداشتیم همین که لطف کردین وقت گذاشتین دستتونو روی کیبورد فشار دادین و جواب منو دادین یک ئنیا ارزش داشته ممنونم بی نهایت
     
    نوشته شده توسط smhosseini61 در ‏23 سپتامبر 2015

به اشتراک بگذارید