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

سلام

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

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

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

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

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

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

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

کد:
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
 

++Hadi++

Active Member
به چشم ، به زودی ... انشاءال...
فقط در مورد قابلیت جدید بهتر نیست خود همون سیستم null بودن keyword رو انجام بدیم ؟؟؟
که دقیقا بشه همون حالت قبل منتها با وجود یه keyword که هر کس خواست ، اونو اعمال کنه ...
ببخشین یه کم سرم خیلی شلوغ بود ولی سعی می کنم خیلی بهینه سازی بشه ...
یه کم باید بشینم و سیستم اصلی این کلاس رو تحلیل کنم تا به بهترین وجه چیزیو که می خوام درست کنم . خوب یه راهی که به ذهنم به عنوان اولین راه می رسه که حتما می تونه اشتباه باشه اینه که ما keyword رو هم با همون روش hash معمولی به پسوورد تبدیل کنیم و این دو پسوورد 32 کاراکتری رو به نحوی با هم ترکیب کنیم و رشته نهایی از ترکیب این دو بوجود بیاد ، نظر شما چیه ؟؟؟
 
سلام

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

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

روشهای Salted hash هم به این صورت عمل میکنند. بهتر از همه این است که خیالتان هم از بابت overflow شدن راحت میشود.
 

++Hadi++

Active Member
سلام
کلاس و سمپل ها در پست 17 این تایپیک دقیقا به درخواست محمد جان آپدیت شد ....
موفق باشید ...
 

++Hadi++

Active Member
والا من یه سری library خارجی پیدا کردم که خیلی کامله و کل سیستم های hash و رمز گذاری رو داره و تقریبا همشون با ByteArray کار می کنن و در همشون ما یه key و یه الگریتم اصلی و رشته مورد نظرمونو در قالب Byte Array به کلاسها پاس می دیم . در کل این library خیلی عالیه و فک کنم اگه با اونا دنبال کنم بهتر باشه، چرا که طراحش ، عمری رو واسه طراحیش گذاشته و همه سیستم ها از جمله Iphon , IPad , Mozilla , MD2 , MD5 , ..... رو داره . در ضمن اونا سازگاری خاصی رو با همنوعانشون در C# .net دارند . یعنی دو تا پک هست . یکی واسه C# و یکی واسه as3 ، شاید بهتر باشه کلاس شما رو به سمت استفاده از ByteArray پیش ببریم .
ولی اعتراف می کنم کلاس شما واقعا راه دسته و خیلی راحت می شه باهاش کار کرد .
موفق باشید .
 

smhosseini61

New Member
کد گذاری فیلم..

محمد جان سلام محمد هستم از تهران خسته نباشید آقا محمد من یک پروژه دارم که کارفرمام میگه باید فیلمها رو کد گذاری کنه تا کسی اگر هم فیلمارو کپی کرد نتونه کسی ببینه میگم باید فیلمهار و embededdکرد ولی فیلمها حجمش بالا است و تو فلش نمیشه embededd کرد میشه راهنمایی کنید چیکار باید بکنم فیلمم هم پسوندش flv هستش وباید به صورت یک فیلم خارجی تو پروزم بیارمش
ممنون اگر محبت کنید و مرا راهنمایی بفرمایید
 
محمد جان سلام محمد هستم از تهران خسته نباشید آقا محمد من یک پروژه دارم که کارفرمام میگه باید فیلمها رو کد گذاری کنه تا کسی اگر هم فیلمارو کپی کرد نتونه کسی ببینه میگم باید فیلمهار و embededdکرد ولی فیلمها حجمش بالا است و تو فلش نمیشه embededd کرد میشه راهنمایی کنید چیکار باید بکنم فیلمم هم پسوندش flv هستش وباید به صورت یک فیلم خارجی تو پروزم بیارمش
ممنون اگر محبت کنید و مرا راهنمایی بفرمایید

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

smhosseini61

New Member
با رو سیاهی تمام مهندس میتونم ازتون خواهش کنم یه نمونه برام بفرتسین یا یه نمونه کار درست کنم شما کدهای مورد نظر رو داخلش وارد کنید هرچی میخونم و زیرو رو میکنم به نتیجه نمیرسم امکان داره !!!!!!
 
با رو سیاهی تمام مهندس میتونم ازتون خواهش کنم یه نمونه برام بفرتسین یا یه نمونه کار درست کنم شما کدهای مورد نظر رو داخلش وارد کنید هرچی میخونم و زیرو رو میکنم به نتیجه نمیرسم امکان داره !!!!!!

سلام، فرصت نشد کدی برایتان بنویسم اما بیشتر چیزی که نیاز دارید در لینک زیر تشریح شده:
http://www.ghostwire.com/blog/archives/as3-applying-rot128-encryption-on-binary-xml/
 

smhosseini61

New Member
مهندس شمس از شما که طلب نداشتی همین که لطف کردین وقت گذاشتین دستتونو روی کیبورد فشار دادین و جواب منو دادین یک ئنیا ارزش داشته ممنونم بی نهایت
 

smhosseini61

New Member
مهندس شمس از شما که طلب نداشتیم همین که لطف کردین وقت گذاشتین دستتونو روی کیبورد فشار دادین و جواب منو دادین یک ئنیا ارزش داشته ممنونم بی نهایت
 

جدیدترین ارسال ها

بالا