ورود

View Full Version : فشرده سازی بی نهایت داده در داخل چند بایت



ایمان اختیاری
یک شنبه 16 خرداد 1389, 17:46 عصر
امروز توی سایت متخصصین ایران یه پست دیدم در رابطه با فشرده سازی بی نهایت داده در چند بایت ..
اگر بتوان بی نهایت داده را داخل چند بایت فشرده کرد و سپس انرا بازیابی کرد به نظر شما ارزش آن چقدر می باشد و چگونه باید از آن استفاده کرد؟

خب نظر شما چیه ؟ ممکنه چنین کاری یا خیر ؟
http://www.irexpert.ir/Webforms/Forum/Question.aspx?QID=35126&Msg=OK

ایمان اختیاری
یک شنبه 16 خرداد 1389, 17:48 عصر
سه بار متنم رو فرستادم تا شد ..
البته این مورد رو می شه از دو جهت بررسی کرد ..
نمی شه : چون غیر ممکنه اطلاعات رو تا یه حد خاصی فشرده کرد
می شه : هیچ چیز غیر ممکن نیست ..
البته از این بشر دوپا مخصوصا ایرانی ها هیچ چیز بعید نیست ..
ولی خب ما داستان برنامه ی KGB رو هم می دونیم که می گفت می شه آفیس رو توی یه دیسکت جا داد..
نظر شما چیه ؟

حامد مصافی
یک شنبه 16 خرداد 1389, 17:53 عصر
ديگه داره برامون عادي ميشه! ما پيشروي علم هستيم، كاري نيست نتونيم انجام بديم!!!

مرتضی پیروزی
یک شنبه 16 خرداد 1389, 18:08 عصر
من خودم ویندوز ویستا و آفیس 2007 رو دارم که باهم فشرده شدن و حجمش هم 5 مگابایت هستش

FastCode
یک شنبه 16 خرداد 1389, 18:12 عصر
من خودم ویندوز ویستا و آفیس 2007 رو دارم که باهم فشرده شدن و حجمش هم 5 مگابایت هستش
همون نسخه ای که چند ماه پیش منتشر شد؟
من آزمایش کردم با 7zip رسید به ۴ مگ.

hoax3r
یک شنبه 16 خرداد 1389, 18:32 عصر
تبلیغ برای هیچ، آخرش میشه مثل همین فشرسازایی که میگن آفیسو میکنیم 1 مگ، ویستارو میکنیم 2 مگ
بعد میبینی همه الکین

Felony
یک شنبه 16 خرداد 1389, 20:25 عصر
با KGB Archive میشه این کار رو کرد ، ولی خدا به داد سیستم در زمان extract شدن فایل برسه !

mirmousavi.m
یک شنبه 16 خرداد 1389, 21:15 عصر
این فشرده‌سازی معمولا برای backupها هستند.

Ali_Hashemi
یک شنبه 16 خرداد 1389, 23:21 عصر
فشرده سازی بی نهایت داده در چند بایت , صد در صد عملی است!چون "چند بایت" از دو بایت شروع میشه تا بی نهایت بایت....
ولی آما, اون شخص محترم گفته که این الگوریتم هر نوع اطلاعاتی را بطور ثابت حداکثر تا 30 بایت فشرده میکند

خیلی دور از ذهن به نظر میاد, ولی هیچ چیز غیر ممکن نیست (ولی نه دیگه تا بی نهایت! تا یه حدی)

مثلا این لینک یه بازی سه بعدی هست با این امکانات :
این بازی از چند مرحله تشکیل شده (یادم نیست فکر کنم 3 یا 5 مرحله)
5 نوع اسلحه در این بازی وجود داره.
موسیقی + افکتهای صوتی داره.
چند نوع دشمن مختلف داره.
هوش مصنوعی مناسب + نور داینامیک حاصل از شلیک گلوله ها که بر روی محیط دیده میشه و ....
خلاصه یک بازی کامله کامله با حجم دقیق 95 کیلوبایت
http://kk.kema.at/files/kkrieger-beta.zip
کار برنامه نویسان آلمانی هست.
و اسکرین شات »
http://kk.kema.at/files/gfx/full1.jpg

silverfox
دوشنبه 17 خرداد 1389, 00:18 صبح
این بازی رو کسی تست کرد؟!

Ali_Hashemi
دوشنبه 17 خرداد 1389, 00:39 صبح
این بازی رو کسی تست کرد؟! می ترسید که ویروسی باشه :بامزه:
نه خیالتون راحت باشه. این کد نویسهاش جایزه هم برنده شدن چند سال پیش.
اگر اطلاعات بیشتر خواستید (اخبار , اسکرین شات , سیستم مورد نیاز , ...) این لینک رو ببینید :
http://www.theprodukkt.com/kkrieger

ایمان اختیاری
دوشنبه 17 خرداد 1389, 08:27 صبح
دوستان .. یه کم علمی با این موضوع برخورد کنین .. درسته اون برنامه ی KGB دری وری می گفت .. ولی خب این محدودیت شاید یه روز شکسته بشه ..

#target
دوشنبه 17 خرداد 1389, 09:00 صبح
اجراش کردم خیلی جالبه .البته روی سیستم من با رم 256 و گرافیک 128 Radeon 9200 به زور میآد


می ترسید که ویروسی باشه
من از ویروسی شدن سیستم نمی ترسم . بیان هر چی دارم بیان ببر ن . بدردشون خورد به ما هم یک خبری بدن !


درسته اون برنامه ی KGB دری وری می گفت
واقعا الکی بوده ... ؟

East.Tiva
دوشنبه 17 خرداد 1389, 21:20 عصر
توی این زمینه الان بیشتر این بحث مطرح هست که داکیومنت ها رو چطوری ذخیره کنیم که قابلیت فشرده سازی بیشتری داشته باشند. مثلا کامپایلرها کدهایی تولید کننده که عناصر تکراری رو طوری داشته باشه که وقتی فشرده میشه حجمش از حجم اصلی کمتر بشه.
بحث بیشتر یه جور زمینه سازی برای سازگاری بیشتر با الگوریتم های فشرده سازی هست.

saied_hacker
دوشنبه 17 خرداد 1389, 22:08 عصر
این دمو ها رو دیدید ؟

دیدنشون خالی از لطف نیست، صد در صد توصیه می شود...!!

fr08v101 این دمو طبق گفته خودشون نزدیک به 1GB و خورده ای حجم داشته که کردنش 65KB :کف:



سایت (http://linux.ccpi.gov.cn/cgi-wsq/wsqbbs/wsqbbs.pl?cx=3&hf=1&hfbm=63323250044V869_63323250044V869&fy=&search=)

nima898
چهارشنبه 19 خرداد 1389, 13:13 عصر
می شه : هیچ چیز غیر ممکن نیست ..

نه در اون حد که هر چیزی ممکن باشه

البته از این بشر دوپا مخصوصا ایرانی ها هیچ چیز بعید نیست ..

برای کارت سوخت که نتونستن کاری کنن (اولا میگفتن :از ایرانیها هیچ چی بعید نیست تا چند ماه دیگه یه کلکی سوار میکنن)

syntiberium
چهارشنبه 19 خرداد 1389, 16:06 عصر
این دمو ها رو دیدید ؟

دیدنشون خالی از لطف نیست، صد در صد توصیه می شود...!!

fr08v101 این دمو طبق گفته خودشون نزدیک به 1GB و خورده ای حجم داشته که کردنش 65KB :کف:



این زیاد چیز عجیب غریبی نیست چون مدل های سه بعدیش را توی 3dmax یا چنین جایی نساختن بلکه تو خود برنامه با برنامه نویسی ساختن . texture هاش رو هم به صورت فایل jpg نذاشتن اون هارو هم با برنامه نویسی گرافیک دو بعدی ساختن . آهنگش رو هم به صورت فایل mp3 نساختن اهنگش با کنار هم گذاشتن نت ها ساخته می شه و قسمت هاییش هم با برنامه نویسی ساخته می شه . و بعد از این مراحل تازه فایل برنامه هم فشرده سازی می شه که خوب می تونست کمتر از 65 کیلوبایت باشه .



فشرده سازی بی نهایت داده در چند بایت

اولا فشرده سازی فقط میاد از اطلاعات تکراری فکتور می گیره و برای اطلاعات شبیه به هم از بیت های کمتری استفاده می کنه .
دوما : مثلا شما یک فایل jpg رو اگر داخل paint ویندز باز کنید و اگر نسخه ی اصل bmp فایل رو داشته باشید و در زوم زیاد باهم مقایسه کنید کیفیت jpg بسیار پایین تر از bmp هست چون یکسری از اطلاعات توی jpg از بین می ره .
سوما : منظور شما از چند بایت مثلا 10 بایت هست ؟ که خوب یعنی 80 تا 0 و 1 . خوب حالا شما چجوری می خواهید مثلا یک فیلم سینمایی 4 ساعته با کیفیت بالا را توی 80 تا دونه 0 و 1 نمایش بدید ؟؟؟ فرض کنید این کار عملی شود و ما یک فیلم تاریخی را اینطوری فشرده کنیم اون وقت لابد اگه یه دونه 0 یا 1 هاش رو عوض کنیم می شه یه فیلم هندی :قهقهه: .

nima898
چهارشنبه 19 خرداد 1389, 19:08 عصر
سوما : منظور شما از چند بایت مثلا 10 بایت هست ؟ که خوب یعنی 80 تا 0 و 1 . خوب حالا شما چجوری می خواهید مثلا یک فیلم سینمایی 4 ساعته با کیفیت بالا را توی 80 تا دونه 0 و 1 نمایش بدید ؟؟؟ فرض کنید این کار عملی شود و ما یک فیلم تاریخی را اینطوری فشرده کنیم اون وقت لابد اگه یه دونه 0 یا 1 هاش رو عوض کنیم می شه یه فیلم هندی :قهقهه: .
حیف که این تالار دکمه تشکر نداره ...

eshpilen
جمعه 21 خرداد 1389, 14:46 عصر
من یه چیزی رو در زندگی یاد گرفتم و اونم اینکه...
غیرممکن وجود نداره!

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

مسئله و معیار احتمالاته، و بحساب آوردن احتمالات که یک حیطهء ریاضیات هست کاملا معقول هست.

بنابراین بنظر من بحث روی اینطور چیزها تلف کردن وقت و انرژیه چون به احتمال زیاد دروغ یا اشتباه هستن و یا یک چیزی که در اصل اون چیزی که ما فکر میکنیم نیست و اونقدری استثنایی نیست و ارزش خیلی بالایی نداره.

از نظر تئوری، در حیطه و صورت شناخته شدهء فعلی خودش، ما میتونیم بگیم فلان چیز غیرممکنه، و این اشکالی نداره.
این غیرممکن بودن به ما میگه که بیخود وقت و انرژیت رو روی چیزی که تئوری میگه غیرممکنه صرف نکن چون احتمال خیلی خیلی کمی وجود داره که ممکن و عملی باشه.
تئوری محدوده و همچنین خطاهای انسانی همیشه ممکن هست. بنابراین واقعا معلوم نیست در آینده چی کشف و اختراع بشه.
علم هرگز مرز ممکن و ناممکن رو مشخص نکرده.
علم میگه چه چیزی ممکن هست. اما اون چیزایی که نگفته ممکن هستن ممکنه ممکن بوده باشن و یه روزی عملی بشن. یه چیزی رو هم ممکنه علم گفته باشه غیرممکنه اما اشتباه شده باشه و ممکن بوده باشه یا محدودهء ناممکن بودن اون چیز محدود بوده باشه ( آیا علم هرگز ثابت کرده که جهان دیگری با قوانین متفاوتی نمیتونه وجود داشته باشه؟)

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

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

nima898
شنبه 22 خرداد 1389, 08:19 صبح
غیرممکن وجود نداره!

وجود داره مثلا میشه یک گیگا بایت رو تو یک بیت فشرده کرد؟

eshpilen
شنبه 22 خرداد 1389, 09:16 صبح
والا كامپيوترهاي كوانتمي ميگن قابليت ذخيرهء همزمان چند بيت اطلاعات رو در يك بيت بطور همزمان دارن.
خوبه بدونيد درسته كه هنوز كامپيوتر كوانتمي واقعي ساخته نشده (البته بعضيا ميگن ممكنه مخفيانه ساخته شده باشه و مثلا دراختيار سازمانهاي اطلاعاتي هست و باهاش رمزها رو ميشكونن) ولي آزمايشهاي مقدماتي موفقيت آميزي در اينمورد انجام شده (يك عمليات رياضي خيلي ساده رو انجام دادن).

eshpilen
شنبه 22 خرداد 1389, 10:19 صبح
حالا من يه چيزي ميپرسم شما جواب بديد.
ميگن يه زماني (قديما) يه نفر برنامه اي نوشته بوده كه باهاش مانيتور كامپيوتر رو ميتركونده!
بنظر شما چنين چيزي ميتونه واقعيت داشته بوده باشه و چطوري؟

درمورد اينكه ميگم همه چيز ممكنه هم واقعا بنظرم ممكنه.
ببينيد يه زماني كه تئوري زيربنايي انرژي هسته اي كشف نشده بود هيچكس نميتونست باور كنه كه مثلا يك دانه شن بتونه چنان منفجر بشه كه يك شهر رو نابود بكنه! ولي الان ميدونيم كه اين غيرممكن نيست. در يك سلاح هسته اي مقدار ماده اي كه به انرژي تبديل ميشه خيلي كمه (حداكثر چند گرم) ولي انرژي آزاد شده خيلي عظيم هست. البته براي اينكه اينقدر ماده به انرژي تبديل بشه ما نياز به چند ده كيلوگرم مواد هسته اي داريم، اما از نظر تئوري ناممكن نيست كه بشه مقدار مادهء مورد نياز رو خيلي كمتر كرد يا مقدار مادهء تبديل شده به انرژي رو خيلي بيشتر كرد.

من واقعا فكر نميكنم عجيب بودن شدني بودن خيلي چيزهايي كه ما ناممكن مي ناميم از تجربهء گذار به عصر انرژي هسته اي عجيب تر باشه لزوما.

حتي ميگيد آيا ممكنه 2*2 مساوي 4 نشه. من ميگم بنظر من هرچيزي ممكنه.
ممكنه جهان ديگري با قوانين ديگري وجود داشته باشه يا بعلت خاصي در نقطه اي از كائنات قوانين ديگري حكم فرما باشه كه ما هنوز بهشون نرسيديم. ممكنه اين شرايط رو بشه در يك جاي ديگه و احتمالا در يك مقياس كوچك يا زمان خيلي كوچك ايجاد كرد. و هيچ دليلي نداره نشه از اين فراتر رفت.
مثلا در سياهچاله هاي فضايي خيلي از قوانين معمولي فيزيك ديگه كارايي ندارن.

از اونجايي كه خداوند هست و هركاري ميتونه بكنه، همه چيز ممكنه.
خداوند ميتونه هرقانوني رو ميخواد وضع كنه.
و ميتونه حتي قانوني وجود نداشته باشه.
محدوديتي وجود نداره.
البته ميتونيم بگيم قوانين حاصل ارادهء خداوند هستن.
يعني چون خداوند كار بيهوده و بي معنا نميكنه براي هرچيزي قانوني قرار ميده و هدفي.
اما شما فكر كنيد وقتي خداوند اولين بار جهان رو خلق كرد چطور اينكار رو كرد؟
آيا قانوني وجود داشت يا قانون رو هم خدا خودش خلق كرد؟
و جهان از چه چيزي بوجود آمد؟
تنها ارادهء خداوند.
يعني نيازي نبود ماده و انرژي اي از قبل موجود باشه.
البته ميتونيم بگيم اينها از خود خداوند تامين ميشن.
اما آيا خداوند هرچي خلق كنه چيزي ازش كم ميشه يا تموم ميشه؟
پس يك بي نهايتي وجود داره كه نياز به هيچ تاميني نداره.
دقيقا يك عدم محدوديت مطلق.

aryasoft2872
شنبه 22 خرداد 1389, 11:23 صبح
این بازی که گذاشتید خیلی قدیمه و مطمئنا تکنولوژی خاصی نداره من خیلی قبل دیدمش ولی الان بستمش و صداش قطع نمی شه،Task manager هم ندارم:اشتباه:

nima898
شنبه 22 خرداد 1389, 11:31 صبح
والا كامپيوترهاي كوانتمي ميگن قابليت ذخيرهء همزمان چند بيت اطلاعات رو در يك بيت بطور همزمان دارن.

پس به اون یک بیت نمیگن میگن چند بیت!

آيا ممكنه 2*2 مساوي 4 نشه. من ميگم بنظر من هرچيزي ممكنه.

آقا من کم آوردم

شما میگید "هیچ چیز غیر ممکنی وجود نداره" ولی این باجمله "آيا ممكنه 2*2 مساوي 4 نشه. من ميگم بنظر من هرچيزي ممكنه" یکمی فرق داره جمله دوم یعنی احتمالش کمتر از 100% و بیشتر از 0% هست ولی جمله اول میگه احتمال وقوع هر چیزی 100% هست لطفا موضعتون دقیقا مشخص کنید. ضمنا مسلما" وقایعی خواهد بود که احتمال وقوعشان در کل کائنات 0% باشد و این جمله اول رو نقض میکنه.

eshpilen
شنبه 22 خرداد 1389, 12:37 عصر
پس به اون یک بیت نمیگن میگن چند بیت!

ديگه نميدونم. اين مبحث پيشرفته هست و هنوز آموزش هم داده نميشه.


آقا من کم آوردماحسنت بر اين صداقت :لبخند:


شما میگید "هیچ چیز غیر ممکنی وجود نداره" ولی این باجمله "آيا ممكنه 2*2 مساوي 4 نشه. من ميگم بنظر من هرچيزي ممكنه" یکمی فرق داره جمله دوم یعنی احتمالش کمتر از 100% و بیشتر از 0% هست ولی جمله اول میگه احتمال وقوع هر چیزی 100% هست لطفا موضعتون دقیقا مشخص کنید. ضمنا مسلما" وقایعی خواهد بود که احتمال وقوعشان در کل کائنات 0% باشد و این جمله اول رو نقض میکنه.ببين داداش تو هم حال داري.
اينطور چيزا رو نميشه ثابت يا رد كرد.
بعدشم بنظر من اگر آدم جايي كه لازم نيست محدوديتي بذاره اينكار رو نكنه بهتره.
از اينكه ما محدوديتي قائل نشيم ضرري بهمون نميرسه. بهرحال ما بر اساس علم و منطق عمل ميكنيم و قرار نيست چون فكر ميكنيم هرچيزي ممكنه كارهاي نامعقول بكنيم و روي چيزايي كه معلوم نيست ممكن باشن سرمايه گذاري بكنيم و برعكس چيزهاي عملي رو رها بكنيم.
اما اينكه خودمون رو حتي به علم و منطق بصورتي كه ميشناسيم محدود بكنيم هم بنظر من درست نيست. كسي چه ميدونه شايد تمام اينا اشتباه باشه و يه زماني چيزاي جديدي بتونيم كشف كنيم كه اگر دچار پيشداوري و تعصب بي دليل و مخالفت كور باشيم نتونيم اونا رو كشف كنيم و ازشون بهره مند بشيم.
بطور كلي من براي خودم محدوديتي نميذارم و از هرچي بتونم استفاده ميكنم. دليلي نمي بينم در اينمورد كه ممكن و غيرممكن چيه زيادي وقت و انرژي صرف كنم كه دست آخرش هم احتمال خطاي انساني هميشه وجود داره. در عوض من فرض ميكنم همه چيز ممكنه، اما بخاطر محدوديت منابع، بر اساس احتمالات عمل ميكنم.
اين خودش يك تفكر منطقيه. نه؟
من توي زندگي به خيلي چيزا برخورد كردم كه يه زماني فكر ميكردم غيرممكنه اما عملي شد.
براي خطاي انساني هم نميشه مرزي گذاشت.
هرچيزي شما بگيد و فكر كنيد بالاخره يه احتمال هرچند خيلي ناچيزي داره كه اشتباه بوده باشه.
آيا شما با همون علم و رياضيات ميتونيد جايي ثابت كنيد كه احتمال اشتباه صفر مطلق هست؟
هرگز نميشه چنين كاري كرد.

aryasoft2872
شنبه 22 خرداد 1389, 14:20 عصر
اینم از انجینی که باهاش اون بازی های کم حجم ساخته میشه:


http://www.werkkzeug.com/

انجینش رایگانه و علااوه بر اون بازی یکدونه دیگه هم به اسم Deberis باهاش ساخته شده

ایمان اختیاری
شنبه 22 خرداد 1389, 16:32 عصر
و ما از سوال پرسیدن خود بسی شرمسار شده و پشت دستمان را داغ می کنیم که دیگر سوال نپرسیم ..:گیج:

1485159
شنبه 22 خرداد 1389, 16:45 عصر
به به بازم کل کل شروع شد... -------- به نظر من امکان پذیره اما نه در یک بایت، حداکثر میشه یک گیگ رو 50 kb کرد نه دیگه 1 kb

Ali_Hashemi
شنبه 22 خرداد 1389, 17:03 عصر
به نظر من امکان پذیره اما نه در یک بایت، حداکثر میشه یک گیگ رو 50 kb کرد نه دیگه 1 kbاون دوستی گه اینو مطرح کرده بود گفته بود در 30 بایت.

به نظر من اگر دید رو عوض کنیم , یعنی به جای اینکه به فشرده سازی بر اساس اطلاعات تکراری فکر کنیم از یه زوش دیکه استفاده کنیم ممکنه بشه به نتایج خوبی رسید. (ولی تا یه حدی)
فرض کنید بشه اطلاعات رو به صورت یک فرمول ریاضی ذخیره کرد. یعنی بشه یه فرمول ریاضی ساخت که اطلاعات رو بدون توجه به حجمشون در اون تابع پیاده سازی کرد. اونوقت شاید بشه توسط این فرمول اطلاعات رو ذخیره کرد. البته این یه ایده شاید ناشیانه به نظر بیاد ولی چندان هم دور از ذهن نیست

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

1485159
شنبه 22 خرداد 1389, 17:17 عصر
اون دوستی گه اینو مطرح کرده بود گفته بود در 30 بایت.

به نظر من اگر دید رو عوض کنیم , یعنی به جای اینکه به فشرده سازی بر اساس اطلاعات تکراری فکر کنیم از یه زوش دیکه استفاده کنیم ممکنه بشه به نتایج خوبی رسید. (ولی تا یه حدی)
فرض کنید بشه اطلاعات رو به صورت یک فرمول ریاضی ذخیره کرد. یعنی بشه یه فرمول ریاضی ساخت که اطلاعات رو بدون توجه به حجمشون در اون تابع پیاده سازی کرد. اونوقت شاید بشه توسط این فرمول اطلاعات رو ذخیره کرد. البته این یه ایده شاید ناشیانه به نظر بیاد ولی چندان هم دور از ذهن نیست

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

ایمان اختیاری
شنبه 22 خرداد 1389, 17:40 عصر
من اولش که این مطلب رو خوندم بلافاصله یاد یکی از قابلیت های نرم افزار فلش افتادم ..
وقتی شما یه شی ایجاد می کنین و تبدیل به یک symbol می کنید می تونید هزاران هزار کپی از اون توی پروژتون استفاده کنید بدون اینکه حجم زیادی بگیره ..
حالا شاید در این روش هم از این مورد ولی بسیار بهینه تر استفاده شده باشه ..

eshpilen
شنبه 22 خرداد 1389, 18:24 عصر
اون دوستی گه اینو مطرح کرده بود گفته بود در 30 بایت.

به نظر من اگر دید رو عوض کنیم , یعنی به جای اینکه به فشرده سازی بر اساس اطلاعات تکراری فکر کنیم از یه زوش دیکه استفاده کنیم ممکنه بشه به نتایج خوبی رسید. (ولی تا یه حدی)
فرض کنید بشه اطلاعات رو به صورت یک فرمول ریاضی ذخیره کرد. یعنی بشه یه فرمول ریاضی ساخت که اطلاعات رو بدون توجه به حجمشون در اون تابع پیاده سازی کرد. اونوقت شاید بشه توسط این فرمول اطلاعات رو ذخیره کرد. البته این یه ایده شاید ناشیانه به نظر بیاد ولی چندان هم دور از ذهن نیست

مثلا فرض کنید با فرمول دایره میتونیم مشخصات تعداد بسیار بالایی از نقاط رو ذخیره کنیم. در صورتی که نگهداری تک تک اون نقاط به حجم زیادی از حافظه نیاز خواهد داشت.
یعنی اگر بشه بین بیت ها و بایتها یه ارتباطی پیدا کرد , میشه فرمول اون رو ذخیره کرد. البته این شاید غیر ممکن باشه. ولی میتونه اینطور هم نباشه
ایدهء جالبی بود.
ولی من فکر میکنم این روش از خیلی وقت پیش شناخته شده بوده و بکار میرفته :لبخند:
مثلا Vector graphics فکر میکنید چیه؟ همینه دیگه. بیان اشکال و تصاویر بصورت فرمولهایی از مثلا دایره و منحنی و خط و غیره. البته من متخصص نیستم اما تاجایی که میدونم و استنباط میکنم اینطوره.
مسئله درمورد دیتاهای معمولی اینه که روابط ریاضی ثابت خاصی بینشون نیست.
مثلا تصاویری که از طبیعت گرفته میشن تقریبا رندوم هستن و هیچ فرمول مختصری نیست که بتونه اونا رو بیان کنه.
فرمولهای ریاضی فقط یک طیف باریک و با روابط ثابت رو میتونن بصورت مختصر بیان کنن (درواقع همون رابطهء ثابت مختصر رو بیان میکنن).

eshpilen
شنبه 22 خرداد 1389, 18:27 عصر
من اولش که این مطلب رو خوندم بلافاصله یاد یکی از قابلیت های نرم افزار فلش افتادم ..
وقتی شما یه شی ایجاد می کنین و تبدیل به یک symbol می کنید می تونید هزاران هزار کپی از اون توی پروژتون استفاده کنید بدون اینکه حجم زیادی بگیره ..
حالا شاید در این روش هم از این مورد ولی بسیار بهینه تر استفاده شده باشه ..
این روش رو هم برای اولین بار چینی ها در دوران باستان ابداع کردن :لبخند:

eshpilen
شنبه 22 خرداد 1389, 18:32 عصر
راستی یادتون باشه من گفتم این بحثها ارزش پرداختن نداره.
تا وقتی هم کسی ثابتش نکرده از دید من یک نوع توهین و کلاهبرداری فنی بحساب میاد و باید خر طرف رو هم گرفت که چرا حرف بیخودی بدون پشتوانه زده.
خب اگر چنین کاری میتونه بکنه باید ساکت باشه تا زمانی که ثبتش کنه و با سند و مدرک بیاد اثبات کنه نه اینکه ور ور مفت بکنه.
بعضیا هم ببخشید ولی از نادانی خودشون فکر میکنن یه چیزی کشف کردن اما تصور اشتباهی دارن و خودشون هم نمیدونن کجای کارشون میلنگه. وقتی پای عمل برسه اونوقت میبینن که هیچی به هیچی و تازه باید کلی فکر و آزمایش کنن تا دوزاریشون بیفته که حساب کجا رو نکرده بودن.
بجای این بحثهای بیهوده برید دنبال چیزای کاربردی و گسترش توانایی و مهارت عملی خودتون.

FastCode
شنبه 22 خرداد 1389, 20:10 عصر
توی stakoverflow چند ماه قبل یه چیزی میخوندم که میخواستند یه عکس ۱ کیلوبایتی رو بکنن ۱۴۰ بایت.
http://stackoverflow.com/questions/891643
این یکی هم بد نیست:
http://stackoverflow.com/questions/422902/image-compression-for-webcomics
الfبته نمیخوام نا امیدتون کنم.


خودم یه راه حل دارم:
size +
SHA1 MD5 CRC32 Adler
برای decode کردن از bruteforce استفاده میکنیم.
زمان تقریباً مساوی است با
۲ به توان ۲ به توان ۵ ضربدر n

eshpilen
شنبه 22 خرداد 1389, 20:53 عصر
خودم یه راه حل دارم:
size +
SHA1 MD5 CRC32 Adler
برای decode کردن از bruteforce استفاده میکنیم.
زمان تقریباً مساوی است با
۲ به توان ۲ به توان ۵ ضربدر n
این روش جالبی بود.
ولی کلا چرا ما باید این کارها رو بکنیم؟
چون محدودیت حجم الان تقریبا هیچ کجا در این حد وجود نداره و محدودیت پردازش اکثرا مهمتر هست.
اگر تونستید یه روشی ارائه بدید که مثلا پردازش یک کاری رو بکنه یک صدم، حتی اگر حجم بیشتری مصرف کنه.
بنظرم منطقی هست که وقت و انرژی بشر روی مسائل دارای اولویت بیشتر و کاربردی صرف بشه.
اینکه بخوایم حجم رو کم کنیم دلیل خاصی نداره در بیشتر کاربردهای امروزی با توجه به امکانات ذخیره سازی و سرعت انتقال بالایی که امروزه وجود داره، بلکه پردازش اغلب مهمتر و محدودتر هست. یعنی شما اگر پردازش رو نصف بکنید ارزشش برابر با اینه که حجم رو یک دهم کرده باشید. البته حتی اینم بستگی به کاربردش داره. مثلا در رندر کردن گرافیک سه بعدی رایانه ای این میتونه خیلی مهم باشه چون در ساخت بازیها خیلی کاربردیه، اما جای دیگه ممکنه این نصف کردن سرعت اصلا فایدهء عملی چندانی نداشته باشه.
اما اینجا شما مثلا حجم رو یک دهم میکنید اما پردازش و زمان مورد نیاز هزاران و احتمالا خیلی بیشتر از هزاران برابر میشه.
مثلا شما درنظر بگیرید روی یک دستگاه گوشی تلفن همراه باوجود حافظهء داخلی محدود، اینکار نه تنها مفید نیست، بلکه یک فاجعهء کامله!! چون اون دستگاهها مسلما نمیتونن ابزارهای Brute force باشن.

Ali_Hashemi
شنبه 22 خرداد 1389, 20:55 عصر
ولی من فکر میکنم این روش از خیلی وقت پیش شناخته شده بوده و بکار میرفته :لبخند:
مثلا Vector graphics فکر میکنید چیه؟ همینه دیگه. بیان اشکال و تصاویر بصورت فرمولهایی از مثلا دایره و منحنی و خط و غیره. البته من متخصص نیستم اما تاجایی که میدونم و استنباط میکنم اینطوره.
مسئله درمورد دیتاهای معمولی اینه که روابط ریاضی ثابت خاصی بینشون نیست.
مثلا تصاویری که از طبیعت گرفته میشن تقریبا رندوم هستن و هیچ فرمول مختصری نیست که بتونه اونا رو بیان کنه.
فرمولهای ریاضی فقط یک طیف باریک و با روابط ثابت رو میتونن بصورت مختصر بیان کنن (درواقع همون رابطهء ثابت مختصر رو بیان میکنن). در مورد تصاویر , بله همینطوره. ولی در مورد بایتهای گسسته مثل یک فایل باینری همچین چیزی هنوز استفاده نشده. ( یا من اطلاع ندارم) چون همونطور که خودتون گفتید نمیشه بین بایتها ارتباطی پیدا کرد. یا اینکه بسیار بسیار مشکل خواهد بود. ولی فرمولهای ریاضی محدود به یک طیف باریک نیست , خیلی اشکال پیچیده ای رو میشه با فرمولها تولید کرد که اصلا قابل باور نیست که شکل مذکور از هیچ فرمولی پیروی کنه. ممکنه یه همچین فرمولی در آینده به دست بیاد:افسرده:
همیشه چیزی که کشف نشده یا اختراع نشده , غیر ممکن به نظر می رسه.
تصاویری که ضمیمه کردم از رسم فرمولهای ریاضی به دست اومده.


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

eshpilen
شنبه 22 خرداد 1389, 21:03 عصر
تصاویری که ضمیمه کردم از رسم فرمولهای ریاضی به دست اومده. بله مشخصه. تقریبا همشون حداقل اگر به چند بخش و منطق بزرگ تقسیمشون بکنیم نظم و ارتباط منطقی مشخصی دارن.
اما بازم اینا شباهت کافی حتی با یک بخش کوچک یک تصویر طبیعی ندارن.
یعنی شما برای هر بخش خیلی کوچکتر از یک تصویر طبیعی مجبورید یک فرمول یا پارامترهای خاص بذارید که در نتیجه حجمش از روشهای غیرفرمولی هم بیشتر خواهد شد.

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

xxxxx_xxxxx
شنبه 22 خرداد 1389, 21:35 عصر
فيلم هاي 64 كيلو (http://barnamenevis.org/forum/showthread.php?t=121828)

eshpilen
شنبه 22 خرداد 1389, 22:51 عصر
عجب چیزایی میذاریدا! جالبه.
ولی من میگم آدم باید همیشه یه کاری بکنه که کاربردی باشه و چیزی و توانایی ای به خودش اضافه بشه.
الان جز اتلاف وقت با این آهنگ و فیلم نبود برام. چون عملا چیز خاصی عایدم نشد.
حالا برای بعضیا که میگن یه چیزایی غیرممکن هست خوبه چون درس عبرتی میگیرن و دست آخر میرسن به همون که من گفتم؛ یعنی: همه چیز ممکنه!
ولی بنظر من حتی آدمهای بسیار باهوش هم میتونن کارهای خیلی احمقانه ای بکنن.
مثلا این افراد چرا وقت و انرژی خودشون رو بیخودی تلف کنن روی کارهایی که فایدهء عملی چندانی ندارن؟
بنظر من با کمک کردن به نرم افزارهای آزاد خیر دنیا و آخرت براشون داره :لبخند:
برن چنتا سخت افزار مهندسی معکوس بکنن درایور برای گنو/لینوکس بدن و از این کارا.
اصلا شاید یه برنامه نوشتن که خودش بصورت خودکار مهندسی معکوس میکرد سخت افزار رو!!
دوتا برنامهء کاربردی قوی بنویسن. مثل فتوشاپ و اتوکد. البته بصورت بازمتن و نرم افزار آزاد.
البته شایدم کارای مفید دیگه ای میکنن و من خبر ندارم!
ضمنا بعضی چیزا هست آدم اختراع میکنه تا یه مدت میتونه هم خودش هم دیگران رو سرکار بذاره. ولی عملا میتونست از وقت و انرژیش خیلی بهتر استفادهء مثبت تری بکنه. بنظر من اینها به ویژگیهای روانی انسان و به خرد آدمی برمیگردن. خیلی باهوش بودن به خودی خود خوشبختی و مفید بودن نمیاره.
فقط فکر کن طرف اونهمه متن بیخود رو نوشته که چی. خودنمایی و ارضای خود. معلومه کم سن و سال بودن یا هنوز حال و هوای بچگی داشتن. البته ظاهرا یه بیزینسی هم دارن توی اینکار (باز این یه انگیزهء معقول تریه).
اول و آخرش ما بریم به کار خودمون برسیم همون سی شارپ و دات نت رو داشتم یاد میگرفتم بهتر بود واسه خیر دنیا و آخرتمون :اشتباه:

nima898
شنبه 22 خرداد 1389, 23:50 عصر
من اولش که این مطلب رو خوندم بلافاصله یاد یکی از قابلیت های نرم افزار فلش افتادم ..
وقتی شما یه شی ایجاد می کنین و تبدیل به یک symbol می کنید می تونید هزاران هزار کپی از اون توی پروژتون استفاده کنید بدون اینکه حجم زیادی بگیره ..
حالا شاید در این روش هم از این مورد ولی بسیار بهینه تر استفاده شده باشه ..
این که فشرده سازی نیست

vcldeveloper
یک شنبه 23 خرداد 1389, 05:24 صبح
خودم یه راه حل دارم:
size +
SHA1 MD5 CRC32 Adler
برای decode کردن از bruteforce استفاده میکنیم.SHA1 رو میخواید brute force کنید؟!!
یک الگوریتم تولید Hash Code مکانیزمی برای برگشت به داده اولیه از روی Hash Code ارائه نمیکنه. یک تابع Hash Code فقط تا حد معینی تضمین میکنه که به ازاء هر ورودی، با هر طولی، خروجی منحصر به فردی با طول مشخص ارائه کنه. داده خروجی حاوی داده ورودی نیست که شما بخواید Decodeاش کنید، و به داده اولیه برسید.



زمان تقریباً مساوی است با
۲ به توان ۲ به توان ۵ ضربدر n با چه واحد زمانی (ثانیه، دقیقه، ساعت، روز، ماه، سال،...)؟ روی چه ماشینی؟

FastCode
یک شنبه 23 خرداد 1389, 06:01 صبح
SHA1 رو میخواید brute force کنید؟!!
یک الگوریتم تولید Hash Code مکانیزمی برای برگشت به داده اولیه از روی Hash Code ارائه نمیکنه. یک تابع Hash Code فقط تا حد معینی تضمین میکنه که به ازاء هر ورودی، با هر طولی، خروجی منحصر به فردی با طول مشخص ارائه کنه. داده خروجی حاوی داده ورودی نیست که شما بخواید Decodeاش کنید، و به داده اولیه برسید.

من این رو برای خودم ننوشتم.
برای Intel Core i700 نوشتم.

با چه واحد زمانی (ثانیه، دقیقه، ساعت، روز، ماه، سال،...)؟ روی چه ماشینی؟
همون O خدمونه.
ولی فکر میکنم اشتباه محاسبه کردم.
ولی در هر حال با تمام کامپیوتر های دنیا هم اگر همزمان کار کنیم, بیشتر ار چند قرن طول میکشه.
ولی خودم تضمین میکنم که کار کنه.

ایمان اختیاری
یک شنبه 23 خرداد 1389, 10:17 صبح
این که فشرده سازی نیست
درسته فشرده سازی نیست ولی حجیم سازی بدون افزایش زیاد حجم کلی پروژه اس ..
حالا اینو فکر کنین بخوایم revers کنیم البته می گم من زیاد با الگوریتم های فشرده سازی کار نکردم

vcldeveloper
یک شنبه 23 خرداد 1389, 12:38 عصر
ولی در هر حال با تمام کامپیوتر های دنیا هم اگر همزمان کار کنیم, بیشتر ار چند قرن طول میکشه.
ولی خودم تضمین میکنم که کار کنه.
من از یک فایل فیلم 4 گیگی یک Hash Code با استفاده از SHA1 تولید می کنم، شما هر چند قرنی که دوست داشتید، روش کار کنید، و اگر تونستید، از اون Hash Code با طول 20 بایت، داده اولیه من (فیلم 4 گیگابایتی مورد نظر) را بازیابی کنید.
عزیز جان، SHA1 یک الگوریتم رمزنگاری نیست، که شما بخواید یک داده را یک بار با آن رمزگزاری کنید، و یک بار هم داده رمز شده را با آن رمزگشایی کنید.

FastCode
یک شنبه 23 خرداد 1389, 16:00 عصر
من از یک فایل فیلم 4 گیگی یک Hash Code با استفاده از SHA1 تولید می کنم، شما هر چند قرنی که دوست داشتید، روش کار کنید، و اگر تونستید، از اون Hash Code با طول 20 بایت، داده اولیه من (فیلم 4 گیگابایتی مورد نظر) را بازیابی کنید.
عزیز جان، SHA1 یک الگوریتم رمزنگاری نیست، که شما بخواید یک داده را یک بار با آن رمزگزاری کنید، و یک بار هم داده رمز شده را با آن رمزگشایی کنید.
منم میدونم الگوریتم رمزنگاری نیست.
راه منم اینه که تمام حالات ممکن = ۲ به توان ۳۲ گیگا رو آزمایش کنم.
و علت اینکه چند تا الگوریتم رو نام بردم اینه که حالات زیادی وجود دارند که جواب یه الگوریتم هش مساوی اون حالت مورد نظر بشه ولی داده ها مساوی نباشند.

vcldeveloper
یک شنبه 23 خرداد 1389, 17:25 عصر
راه منم اینه که تمام حالات ممکن = ۲ به توان ۳۲ گیگا رو آزمایش کنم.
خب، تمام حالات ممکن رو آزمایش کنید که به چی برسید؟! من میگم از یک Hash Code نمی تونید به داده اولیه برسید. حالا شما تمام حالات ممکن برای یک Hash Code را آزمایش کنید که چی بشه؟ Hash Code شما فقط زمانی به درد میخوره که شما داده اولیه رو داشته باشید، و فقط برای تصدیق معتبر بودن آن، آن را با Hash Code مربوطه مقایسه کنید. یعنی شما باید همه داده های موجود در جهان را در اختیار داشته باشید، و وقتی یک Hash Code دریافت کردید، از همه این داده ها Hash Code تهیه کنید، و آن را با Hash Code دریافت شده مقایسه کنید. اگر مساوی بودند، اون وقت بگید، با احتمال N درصد (با توجه به الگوریتم استفاده شده)، داده اولیه این بوده. خب طبیعی هست که در اختیار داشتن تمام داده های جهان برای شما غیر قابل محتمل هست.

باز هم تکرار می کنم، از یک Hash Code به تنهایی نمی تونید به داده اولیه برسید، فقط می تونید مجموعه ایی از داده ها را داشته باشید، و Hash Code آنها را با Hash Code موجود مقایسه کنید.

1485159
یک شنبه 23 خرداد 1389, 17:46 عصر
بازم هم از اون دمو ها دارین؟ 2 بعدی شون رو چی؟

علیرضا مداح
یک شنبه 23 خرداد 1389, 19:37 عصر
سلام،
در تصریح گفته های آقای کشاورز، وقتی که یک Large Set of Data یا "مجموعه عظیمی از داده" را در اختباز دارید و قصد دارید آن را با یک مجموعه ی دیگر "مقایسه کنید" یا از "معتبر بودن" آن اطمینان حاصل کنید، از تکنیک ها و الگوریتم های Hashing استفاده می کنید، تصور کنید که بخواهید برای مفایسه دو مجموعه ی 4 گیگابایتی از داده ها، "تک تک" بایت های آن ها را با هم مقایسه کنید! مسلما" "زمان بسیاز زیادی" به طول خواهد انجامید، به همین دلیل دو مجموعه ی داده را Hash می کنید(با بهره گیری از "الگوریتم ها" و همچنین "تکنیک ها" ی موجود Hashing) و بعد "مقدار Hash شده ی آن ها را با هم مقایسه می نمایید"، یکی از کاربرد های Hash کردن Data به همین معنا می باشد،
پیشنهاد می کنم مطالعه بیشتری بر روی مفاهیم Cryptography داشته باشید،/

FastCode
یک شنبه 23 خرداد 1389, 22:06 عصر
همین دلیل دو مجموعه ی داده را Hash می کنید(با بهره گیری از "الگوریتم ها" و همچنین "تکنیک ها" ی موجود Hashing) و بعد "مقدار Hash شده ی آن ها را با هم مقایسه می نمایید"
من هم همین رو میگم.
شما HashCode اون فیلم رو میدی به من.
من هم تمام حالات ممکن(دو به توان ۳۲ گیگ) رو بررسی میکنم تا به اطلاعاتی برسم که Hashcode اونها با اون چیزی که به من دادی مساوی بشه.
یعنی دارم اشتباه میکنم؟

1485159
یک شنبه 23 خرداد 1389, 22:14 عصر
یعنی دارم اشتباه میکنم؟
فکر نکم درست فکر کرده باشی.:لبخند:

علیرضا مداح
یک شنبه 23 خرداد 1389, 22:31 عصر
یعنی دارم اشتباه میکنم؟ پاسخ:

خب، تمام حالات ممکن رو آزمایش کنید که به چی برسید؟! من میگم از یک Hash Code نمی تونید به داده اولیه برسید. حالا شما تمام حالات ممکن برای یک Hash Code را آزمایش کنید که چی بشه؟ Hash Code شما فقط زمانی به درد میخوره که شما داده اولیه رو داشته باشید، و فقط برای تصدیق معتبر بودن آن، آن را با Hash Code مربوطه مقایسه کنید. یعنی شما باید همه داده های موجود در جهان را در اختیار داشته باشید، و وقتی یک Hash Code دریافت کردید، از همه این داده ها Hash Code تهیه کنید، و آن را با Hash Code دریافت شده مقایسه کنید. اگر مساوی بودند، اون وقت بگید، با احتمال N درصد (با توجه به الگوریتم استفاده شده)، داده اولیه این بوده. خب طبیعی هست که در اختیار داشتن تمام داده های جهان برای شما غیر قابل محتمل هست.ببینید، فرض کنید یک فایلی Hash شده است و نتیجه ی آن یک آرایه ی 32 عضوی از بایت می باشد که به شما داده شده باشد، این آرایه ممکن است متعلق به یک فایل JPEG با حجم 200 کیلوبایت باشد یا متعلق به یک فایل MDF با حجم 5 گیگابایت!
شما چطور قصد دارید از این آرایه به داده ی اولیه برسید؟ اصلا" حداقل چطور می توانید متوجه شوید که "حجم" فایل اولیه چقدر بوده است؟ یا همچنین ساختار آن؟
پس مجبورید که به قول آقای کشاورز Hash Code "تمام داده های موجود در عالم" را بررسی کنید و تازه در آن صورت باز هم نمی توانید به نتیجه ی 100% برسید!
،/

FastCode
یک شنبه 23 خرداد 1389, 22:53 عصر
پاسخ:
ببینید، فرض کنید یک فایلی Hash شده است و نتیجه ی آن یک آرایه ی 32 عضوی از بایت می باشد که به شما داده شده باشد، این آرایه ممکن است متعلق به یک فایل JPEG با حجم 200 کیلوبایت باشد یا متعلق به یک فایل MDF با حجم 5 گیگابایت!
شما چطور قصد دارید از این آرایه به داده ی اولیه برسید؟ اصلا" حداقل چطور می توانید متوجه شوید که "حجم" فایل اولیه چقدر بوده است؟ یا همچنین ساختار آن؟
پس مجبورید که به قول آقای کشاورز Hash Code "تمام داده های موجود در عالم" را بررسی کنید و تازه در آن صورت باز هم نمی توانید به نتیجه ی 100% برسید!
،/
من هم به همین دلیل گفتم که طول داده + SHA1+ CRC+ ... تا بتونم با دقت بیشتری این کار رو انچام بدم.
در ضمن حالا ۱۰۰ بایت که زوری نیست.
فایل رو به بخشهای ۵۰ مگابایتی تقسیم میکنیم و برای هر کدوم یه ...+ CRC +SHA2048 مینویسیم و اطمینان و سرعت رو زیاد میکنیم.
نهایتاً میشه ۵ کیلوبایت.

eshpilen
یک شنبه 23 خرداد 1389, 23:37 عصر
داده شما باید حجمش از این اطلاعات خلاصه شده خیلی بیشتر باشه تا این روش عملا تفاوت مهمی در حجم داشته باشه.
اما همین باعث میشه حیطهء جستجو هم خیلی بزرگ بشه و پردازش خیلی زیادی لازم داشته باشه.
و همونطور که گفتم این هدف احتمالا در تمامی موارد غیرکاربردی هست.
یعنی بنظر شما چه جایی هست که ما چنین قدرت پردازشی عظیمی دراختیار داشته باشیم اما محدودیت ذخیرهء حجمی داشته باشیم؟!!

مهران رسا
یک شنبه 23 خرداد 1389, 23:44 عصر
دوست عزیز Hash Code از یک الگوریتم یک طرفه به دست میاد . به عنوان یک مثال ساده فکر میکنید چرا مثلاً در نرم افزار های امنیتی از عبارت "Reset Password" به جای "Change Password" استفاده میشه ؟

1485159
یک شنبه 23 خرداد 1389, 23:47 عصر
دوست عزیز Hash Code از یک الگوریتم یک طرفه به دست میاد . به عنوان یک مثال ساده فکر میکنید چرا مثلاً در نرم افزار های امنیتی از عبارت "Reset Password" به جای "Change Password" استفاده میشه ؟
خدایی اصلا دقت کردی که داری چی رو نقل قول میکنی؟:لبخند:

مهران رسا
یک شنبه 23 خرداد 1389, 23:58 عصر
خدایی اصلا دقت کردی که داری چی رو نقل قول میکنی؟:لبخند:
:بامزه: / ویرایش شد .

eshpilen
دوشنبه 24 خرداد 1389, 00:11 صبح
دوست عزیز Hash Code از یک الگوریتم یک طرفه به دست میاد . به عنوان یک مثال ساده فکر میکنید چرا مثلاً در نرم افزار های امنیتی از عبارت "Reset Password" به جای "Change Password" استفاده میشه ؟
الگوریتم های هش البته که یک طرفه هستن و خاصیت و کاربردشون همینه.
اما این یک طرفه بودن فقط به معنای اینه که الگوریتم کارایی برای انجام فرایند معکوس، یعنی از هش به دیتای اولیه یا پیدا کردن دیتای دیگری که همون هش رو داشته باشه (دقت کنید ایندو با هم متفاوت هستن)، کشف نشده و بنابراین تنها روش ممکن مقایسهء هش تمام دیتاهای ممکن هست که اینکار هم غیرعملی هست بخاطر اینکه قدرت پردازشی رایانه ها جواب نمیده و مثلا شونصد سال طول میکشه (تازه با فرض محدود یا مشخص بودن طول دیتای اولیه).

البته روشی که دوست گرامی از قبل گفتن شامل ذخیرهء CRC و اندازهء دیتای اولیه هم میشد که اینها باعث میشن محدودهء جستجو خیلی کوچکتر بشه. اما هنوز هم محدودهء جستجو اونقدری بزرگ هست که این روش هرگز کاربرد عملی نداشته باشه.
ضمنا درمورد CRC چون این الگوریتم اساسا الگوریتم هش به اون معنا و هدف Cryptographic و دارای خواص مورد نیاز در این کاربردها نیست، یعنی استحکام رمزنگاری نداره، خودش باعث امکان خیلی بیشتری در کشف دیتایی میشه که هش مورد نظر رو داشته باشه. البته اینم بگم که درواقع چیزی که خیلی وقتها در هک کردن هش ها مطرح هست کشف دیتای اولیه نیست، بلکه ایجاد/کشف دیتای دیگری هست که باوجود تفاوت با دیتای اولیه، همون هش رو تولید بکنه.
البته یک اصطلاحی که حتی در متون فنی درشرح الگوریتم های هش بکار رفته همون فشرده سازی هست یا فشرده سازی یک طرفه! اما این مسلما با مفهوم و هدف فشرده سازی واقعی قابل برگشت از زمین تا آسمان فرق میکنه.
بهرحال من فکر میکنم دوست گرامی حتی اگر به یک دیتایی برسن که هش مورد نظر رو تولید بکنه، این مشکل باقی میمونه که از کجا معلوم اون دیتای اصلی بوده باشه و شاید یک یا چند دیتای دیگر در همون محدودهء جستجو وجود داشته باشن که همون هش رو دارن.
ترکیب CRC با Hash هم فکر نمیکنم کمک چندانی به این مشکل بکنه (نهایتا میتونه معادل کمی افزایش در طول هش محسوب بشه). چون CRC هم خودش در این خاصیت با هش یکسان هست (یعنی چند دیتا میتونن CRC یکسانی داشته باشن) و ضمنا بنظرم حتی خیلی هم وضعش خرابتره در این زمینه چون اصلا برای کاربردهای Cryptographic طراحی نشده و استحکام امنیتی نداره.