سلام
نوشته شده توسط
am_merman01
در هنگام دانلود با خطای فایل موجود نیست مواجه میشم
احتمالا بد کپی کردیده اید، نمیدانم ... با چند مرورگر امتحان کردم ...
مجدد با لینک این را امتحان کنید، یا مرورگر دیگری را امتحان کنید، اگر دانلود منجر دارید، موقت غیر فعالش کنید.
اگر نشد جای دیگرا آپلود میکنم.
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
برای رفع نقص خودم عرض میکنم، شرایط رایانه تان چیست؟ چه مرورگری استفاده کردید؟ برنامه مدیریت دانلودی نصب داشتید؟ اگر نقصی وجود دارد ، میخواهم بفهمم مشکل کجاست تا در رایانه خودم شبیه سازی اش کنم و متوجه علت آن شوم تا رفعش کنم...
نوشته شده توسط
am_merman01
وکتور چیه؟
در رمزنگاری های الگوریتم طوری پیش میرود که خروجی بایت های قبلی در رمزنگاری بایت های جدید تاثیر دارد
یعنی اگر من یک بایت را در وسط دیتاعوض کنم، کل رمزنگاری پس از آن تغییر میکند و مشابه قبل نخواهد بود.
فرض کنید رمزنگاری رشته 123456789 بشود ABCDEFGHI
آنگاه شاید رمزنگاری رشته 123406789 بشود ABCDPONUX
مقدار IV شروع این دیتا برای بایت های اولیه است.
در کل شما میتوانید تلفیق IV و Key را با هم بعنوان Password درنظر بگیرید.
نوشته شده توسط
am_merman01
طول آرایه کلید به چه چیزی بستگی داره ؟
به الگوریتم
اعدادی که شما ذکر کردید مربوط به الگوریتم AES است.
این اطلاعات به راحتی از مستندات قابل استخراج است یا در کلاس های مختلف property هایی مانند KeySize وجود دارد که این ارقام را گزارش میکنند.
نوشته شده توسط
am_merman01
آیا با همین کد میشه از سایر روش های رمزنگاری مثل SHA , MD5 و .... استفاده کرد(منظورم صرفا با تغیر AES به مثلا MD5
شاید بتوان الگوریتم های عادی حوزه رمزنگاری را به سه دسته تقسیم بندی کرد.
الگوریتم های نامتقارن
الگوریتم های متقارن
و الگوریتم های یک طرفه (هش)
الگوریتم AES یکی از معروف ترین الگوریتم های متقارن است.
کد فوق برای سایر الگوریتم های متقارن هم قابل استفاده است.
مانند DES یا TripleDES یا Rijndael و...
ولی انواع SHA ها و MD5 ها الگوریتم های یک طرفه هستند.
اطلاعاتی که با این الگوریتم ها رمزشود دیگر قابل رمزگشایی نیستند !
بد نیست بدانید که در ارتباط رمزنگاری پیشرفته ای مانند پروتکل SSL از هر سه این خانواده الگوریتم ها در کنار هم و همزمان استفاده میشود وهرکدام امنیت بخشی از کل پروتکل را تضمین میکند ...
نوشته شده توسط
am_merman01
ولی کار دو خط آخر رو اصلا متوجه نشدم
معمولا رمزنگاری ورمزگشایی بلوک آخر اطلاعات کمی متفاوت است و تابع FlushFinalBlock این رمزنگاری در نقطه انتهایی را مدیریت میکند.
خط بعدی هم که واضح است...
همانطورکه متوجه شده اید، کل فرآیندهای رمزنگاری روی داده های خام باینری انجام میشود (آرایه های بایتی)
من خواستم که ورودی و خروجی تابع ام string باشد.
حتی رشته رمزنگاری شده هم string باشد.
پس در شروع رمزنگاری با فرمان UTF8.GetBytes متن را به آرایه باینری تبدیل کرده ام.
و در پایان عملیات با Convert.ToBase64String آرایه باینری رمزشده بی معنی را به متنی تبدیل کرده ام.
این الگوریتم به نام Base-64 شناخته میشود و در "وب" ویا "xml" ها و... بسیار کاربرد دارد.
الگوریتم Base-64 یک اطلاعات باینری به متنی با حروف استاندارد اسکی تبدیل میکند.
مثلا Base-64 میتوانید یک "تصویر" یا "آهنگ" را در فایل xml که فایلی متنی است ذخیره و منتقل کنید
در این مثال میشد از Base-64 استفاده نکرد ولی باید خروجی تابع رمزنگاری را [ ]byte میکردیم.
نوشته شده توسط
am_merman01
توضیحاتی که بعد از تک کوتیشن قرار میگیرن توی نسخه نهایی برنامه ( منظورم نسخه Release) حذف میشن؟
خیلی واضح است...
جواب کوتاه آن است که حذف میشود و جواب بلدتر چنین میشود:
کل دستورات متنی CSharp یا VB ما فرآیند "کامپایل" رویش انجام میشود.
تمام موارد "توضیح شده Comment" را کلا کامپایلر نادیده میگیرد.
اصلا کامپایلر این بخش ها را نمیبیند که بخواهد کاری کند...
دستورات متنی تایپ شده ما هم به همان صورت باقی نمی ماند، این دستورات به زبان ماشین (یا در دات نت به زبان میانه IL) کامپایل میشود.
مثلا فرمان زیر را در نظر بگیرید:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خروجی کامپایل این دستورات چنین است
این اعدادی است که واقعا در dll یا exe قرار میگیرد.
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این اعداد با نماد متنی IL (جهت نگارش و فهم ساده تر) چنین بیان میشود
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در کدکامپایل شده حتی "نام متغییرهای محلی درون توابع" هم بی معنی و تعریف نشده است.
(نام متغییرهای سطح کلاس فقط به عنوان متادیتا کلاس در دات نت نگه داشته میشود ولی تمام نام متغییرهای محلی کلا حذف میشود و ذخیره نمیشود)
یعنی حتی نام a و b و c که به متغییرها داده اید دیگر حذف شده و معنی ندارد.
حالا که بنظرتان "توضیحات comment" شما چه جایگاهی در خروجی کامپایل دارد؟!