نمایش نتایج 1 تا 10 از 10

نام تاپیک: آیتم اشتباه در دوره های برنامه نویسی (امنیت)

  1. #1

    آیتم اشتباه در دوره های برنامه نویسی (امنیت)

    اینجا: http://barnamenevis.info/course/php_security
    نوشته: بررسی الگوریتم رمز نگاری Base62

    اولا که Base62 نشنیده بودم تاحالا! بنظرم منظورتون Base64 بوده.
    دوما Base64 الگوریتم رمزنگاری نیست. حالا اینکه بعضیا یا حتی خیلیا اینطور میگن و/یا استفاده میکنن دلیل نمیشه. توی مقالهء ویکیپدیا هم بخونید مشخصه که هدف و کاربردش رمزنگاری نیست. چیزی که براحتی بدون هیچ کلیدی معکوس میشه و از قیافش هم تابلوئه که رمزنگاری نمیشه!

  2. #2

    نقل قول: آیتم اشتباه در دوره های برنامه نویسی (امنیت)

    دوست عزیز
    با توجه از حسن توجه شما
    62 یک اشتباه تایپی است که با تذکر شما برطرف شد
    در مورد کارایی هم به متن زیر دقت کنید:
    base64 is an encoding algorithm rather than an encryption algorithm. Originally developed to allow
    transfer of binary email attachments by transforming them into printable characters, it has found
    considerable use for what some might prefer to call obfuscation rather than encryption (in HTTP Basic
    Authentication, for example)
    ما هم می دونیم که برای کارهای مهم از این سیستم استفاده نمیشه، اما درجای خودش و کاربرد خودش طی جلسات کلاس، این الگوریتم رو بررسی خواهیم کرد

  3. #3

    نقل قول: آیتم اشتباه در دوره های برنامه نویسی (امنیت)

    گفتار شما مبهم است، ولی ظاهرا دچار یک اشتباه شده اید.

    ببینید ما در علم رمزنگاری به الگوریتم های رمزنگاری encoding algorithm نمیگوییم.
    اصلاح encoding در این حیطه، یک اصطلاح بیش از حد کلی و مبهم و نادقیق است از نظر فنی/تخصصی.

    البته شاید بعضی ها از این واژه برای اشاره به الگوریتمهای رمزنگاری استفاده کرده باشند، ولی بیشتر این استفاده توسط غیرحرفه ایها صورت میگیرد طبیعتا. اگر یک حرفه ای از این اصطلاح استفاده کند، که بنده در این همه مطالب «تخصصی/حرفه ای» که تاکنون مطالعه کرده ام مورد مشخصی یادم نمی آید، یک اهمال است اکثرا یا بهرصورت انتخاب مناسبی نیست.

    واژهء encoding بیشتر در حیطه های دیگری است که دقت کافی دارد و متداول است یا اصلا مخصوص آنهاست.
    بطور مثال میگوییم character encoding.
    میگوییم UTF-8 encoding.
    یا مثلا فرمت/الگوریتم یک فایل صوتی را درنظر بگیرید که میتواند mp3, mp4, ogg, wma و غیره باشد. اگر درست یادم باشد، به برنامه های تولید این فرمتها هم خیلی وقتها encoder گفته میشود.
    یعنی encoding بیشتر به معنی شکلها/فرمتهای مختلف بیان یک سری اطلاعات خاص است؛ که این واضحا با رمزگذاری (Encryption) تفاوت بیش از آن دارد که بتوانیم بین این دو ارتباط مهمی قائل شویم.
    یا مثلا ما میتوانیم یک عدد را در مبنای 2، 8، 10، 16 و غیره نمایش دهیم، که اینها هم میتوانند encoding های مختلف یک عدد تلقی شوند.
    آیا شما چیزی مثل تبدیل یک عدد از مبنای 2 به مبنای 16 یا 64 را رمزنگاری تلقی میکنید؟
    واضحا این رمزنگاری نیست؛ یا حداقل یک نوع بسیار بسیار ضعیف و منقرض شده از رمزنگاری است. بقول متنی که خودتان گذاشتید، بعضی ها آن را obfuscation تلقی میکنند؛ هرچند حتی میتوانم بگویم این الگوریتم در زمینهء obfuscation هم بسیار ضعیف است (بعلت اینکه تشخیص و معکوس کردن آن ساده است و از روز اول طراحی اش هم همینطور بوده چون اساسا برای obfuscation طراحی نشده) و از نظر تخصصی نباید یک الگوریتم obfuscation نامیده شود؛ تنها فرق اینست که باز کاربرد آن به اسم obfuscation تاحدی معنا دارد (حداقل در بعضی Context ها) و گناه کوچکتری است تا کاربرد و نامیدنش بعنوان الگوریتم رمزنگاری!

    و در پایان ترجمهء جملهء اول همان متنی که خودتان گذاشته اید را ببینیم:

    base64 is an encoding algorithm rather than an encryption algorithm.‎

    base64 یک الگوریتم encoding است تا/بجای یک الگوریتم رمزنگاری.

  4. #4

    نقل قول: آیتم اشتباه در دوره های برنامه نویسی (امنیت)

    درواقع Base64 همانطور که از اسمش هم پیداست، در اساس چیزی نیست جز تبدیل داده های باینری (مبنای 2) به مبنای 64.
    البته ارقام در این مبنای 64 بوسیلهء مجموعه ای از کاراکترهای ASCII نمایش داده میشوند.
    حال اینکه چرا مبنای 64 را انتخاب کرده اند، احتمالا بخاطر بهینه بودن حداکثری حجم داده ها پس از تبدیل به کاراکترهای ASCII بوده است.

    حال شاید شما بگویید بله ما اینها را میدانستیم.
    ولی دقت کنید که اصلا این عبارت «الگوریتم رمزنگاری Base64» از اساس غلط است و طبیعتا باعث گمراه شدن یا حداقل سردرگمی شاگردان میشود و به هیچ روی نباید چنین تیتری برایش زد آنهم تحت عنوان آموزش امنیت و رمزنگاری!

  5. #5

    نقل قول: آیتم اشتباه در دوره های برنامه نویسی (امنیت)

    نقل قول نوشته شده توسط eshpilen مشاهده تاپیک
    گفتار شما مبهم است، ولی ظاهرا دچار یک اشتباه شده اید.

    ببینید ما در علم رمزنگاری به الگوریتم های رمزنگاری encoding algorithm نمیگوییم.
    اصلاح encoding در این حیطه، یک اصطلاح بیش از حد کلی و مبهم و نادقیق است از نظر فنی/تخصصی.
    ما از نظر فنی/تخصصی، به خاطر ابهام در گفتار، از شما عذرخواهی می کنیم.
    قبلا توضیح دادم که این مسئله، بصورت کامل سر کلاس باز و بررسی خواهد شد


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

    نقل قول نوشته شده توسط eshpilen مشاهده تاپیک
    واژهء encoding بیشتر در حیطه های دیگری است که دقت کافی دارد و متداول است یا اصلا مخصوص آنهاست.
    بطور مثال میگوییم character encoding.
    میگوییم UTF-8 encoding.
    یا مثلا فرمت/الگوریتم یک فایل صوتی را درنظر بگیرید که میتواند mp3, mp4, ogg, wma و غیره باشد. اگر درست یادم باشد، به برنامه های تولید این فرمتها هم خیلی وقتها encoder گفته میشود.
    یعنی encoding بیشتر به معنی شکلها/فرمتهای مختلف بیان یک سری اطلاعات خاص است؛ که این واضحا با رمزگذاری (Encryption) تفاوت بیش از آن دارد که بتوانیم بین این دو ارتباط مهمی قائل شویم.
    Code در برگردان فارسی به عنوان "رمز" ترجمه شده است، و ترجمه ی Encoding به فارسی می شود "تبدیل به رمز" یا "رمزنگاری"


    نقل قول نوشته شده توسط eshpilen مشاهده تاپیک
    تنها فرق اینست که باز کاربرد آن به اسم obfuscation تاحدی معنا دارد (حداقل در بعضی Context ها) و گناه کوچکتری است تا کاربرد و نامیدنش بعنوان الگوریتم رمزنگاری!
    بنده سعی می کنم بعدا، در مورد گناه/ثواب یا صغیره / کبیره بودن این موضوع، از مراجع محترم استفتا کنم.

    نقل قول نوشته شده توسط eshpilen مشاهده تاپیک
    و در پایان ترجمهء جملهء اول همان متنی که خودتان گذاشته اید را ببینیم:

    base64 is an encoding algorithm rather than an encryption algorithm.‎

    base64 یک الگوریتم encoding است تا/بجای یک الگوریتم رمزنگاری.
    از ترجمه ی این متن بسیار سپاسگذارم، اما لطف می کردید encoding رو هم ترجمه می کردید تا ببینیم چه لغت بجای رمزنگاری استفاده می کنید

    نقل قول نوشته شده توسط eshpilen مشاهده تاپیک
    حال شاید شما بگویید بله ما اینها را میدانستیم.
    شما در نظر بگیرید ما از صحبت های شما آموختیم و قبلا نمی دانستیم ...

    نقل قول نوشته شده توسط eshpilen مشاهده تاپیک
    ولی دقت کنید که اصلا این عبارت «الگوریتم رمزنگاری Base64» از اساس غلط است و طبیعتا باعث گمراه شدن یا حداقل سردرگمی شاگردان میشود و به هیچ روی نباید چنین تیتری برایش زد آنهم تحت عنوان آموزش امنیت و رمزنگاری!
    بنده تا به حال، بیش از 1200 دانشجوی برنامه نویسی داشتم، که طبق اطلاع من، 80% آنها در حال کار در زمینه های مختلف نرم افزار هستند.
    و تمام تلاشم بر این است که تجربه ی سال ها برنامه نویسی و انتقال دانش، را در اختیارشان بگذارم
    شما سعی کنید اگر روزی خواستید تدریس کنید و یا الان مشغول به این کار هستید، مثل ما باعث گمراهی دانشجویانتان نشوید !!!

  6. #6

    نقل قول: آیتم اشتباه در دوره های برنامه نویسی (امنیت)

    Code در برگردان فارسی به عنوان "رمز" ترجمه شده است، و ترجمه ی Encoding به فارسی می شود "تبدیل به رمز" یا "رمزنگاری"
    من با فارسی کاری ندارم.
    فارسی معیاری نیست در این زمینه ها.
    شما میخوای این سوال رو در یک جایی که افراد بقدر کافی مطلع و متخصص هستن بپرسیم؟
    مثلا security.stackexchange.com جای خوبیه.
    یا شاید crypto.stackexchange.com بهتر باشه.
    البته اگر خواستی این کار رو بکنیم صبر کن با هم روی یک صورت سوال کامل و دقیق و منصفانه به توافق برسیم. چون طرز پرسیدن میتونه خیلی مهم باشه و به پاسخهای متفاوتی منجر بشه.

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

    Code در برگردان فارسی به عنوان "رمز" ترجمه شده است، و ترجمه ی Encoding به فارسی می شود "تبدیل به رمز" یا "رمزنگاری"
    همین Code که میگید بنده چند بار کلی مقاله خوندم تا بفهمم بالاخره دقیقا چه معنی ای بده.
    شاید حتی با این حال بطور کامل و دقیق و مطمئنی نفهمیدم.
    تازه همین الانش هم بیشترش رو یادم رفته!!
    الان واقعا ترجیح میدم ازش بطور کلی استفاده نکنم. اگرم احساس نیاز کنم دوباره باید یه بررسی و تحقیقی بکنم.
    آدم باید دقتش بالا باشه. باید اطمینانش بالا باشه. نه اینکه مثلا از توی دیکشنری معنی دربیاره. البته دیکشنری هم میتونه یکی از منابع متعددی باشه که باید بررسی بشه.
    در این حیطه ها لازمه که دقت اینقدر بالا باشه.

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

  7. #7

    نقل قول: آیتم اشتباه در دوره های برنامه نویسی (امنیت)

    بنده دلایل و شواهد روشنی بهتون دادم.
    یخورده دقت کنید.
    اگر encoding همه جا به معنی رمزنگاری باشه، پس Character encoding که یک اصطلاح کاملا متداول و تخصصی و رسمی هست، و یا UTF-8 encoding، و mp3 encoder و غیره همه یجورایی باید الگوریتم رمزنگاری باشن!
    واقعا اینطوره؟
    پس چرا اینا رو هم در تدریس خودتون بعنوان الگوریتم های رمزنگاری مطرح نمیکنید؟

    درمورد اینکه Base64 الگوریتم رمزنگاری نیست هم که خب کلی اسناد و شواهد عملی هست اصلا! مقالهء ویکیپدیاش، RFC مربوطه، کاربردی که از اول براش ساخته و استفاده شده، اینکه براحتی قابل تشخیص و برگشت هست، اینا همه نشون میدن که کمترین ارتباط رو با رمزنگاری داره.

    بازم شک دارید توی همون سایتهای Q&A میتونیم بپرسیم.

    دلیل عمدهء شما برای این ادعا که Base64 الگوریتم رمزنگاری است اینه که encoding در دیکشنری به فارسی چه ترجمه ای داشته!
    درحالیکه در کاربردهای عملی هم دارید میبینید که این اصطلاح برای چیزهای تقریبا بطور کامل بی ربط به رمزنگاری (بخصوص رمزنگاری مدرن) هم داره استفاده میشه.

    بله ممکنه یک معنی کلی و مبهمی در زمینهء رمزنگاری هم داشته باشه، اما معنی های دیگری هم داره که تازه متداول تر و تخصصی تر و دقیق تر و رسمی تر هم هستن تاجاییکه بنده دیدم.
    بنابراین شما نمیتونید به صرف اینکه یه چیزی رو encoding نامیدند بگید الگوریتم رمزنگاریه!

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

  8. #8

    نقل قول: آیتم اشتباه در دوره های برنامه نویسی (امنیت)

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

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

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

  9. #9

    نقل قول: آیتم اشتباه در دوره های برنامه نویسی (امنیت)

    اینجا طرف خوب توضیح داد: http://crypto.stackexchange.com/ques...ment14433_5434

    Encoding simply means to "write something differently", either to save space, increase readability, or some other purpose. Encryption means "encoding something with the clear purpose of preventing unauthorized entities to read the information". So encryption is a specific form of encoding, but encoding is not encryption. But in general we do not like to call encryption encoding because it is too broad a term.

    ترجمه: « Encoding بسادگی به معنای "نوشتن چیزی به شکلی متفاوت" است، به قصد صرفه جویی در فضا، افزایش خوانایی، یا یک هدف دیگر. Encryption (م: رمز کردن) به معنای "Encode کردن چیزی با هدف واضح جلوگیری از خوانده شدن توسط موجودیت های غیرمجاز" است. پس رمز کردن یک شکل خاص از Encoding است، اما Encoding برابر با رمز کردن نیست. اما بطور کلی ما دوست نداریم تا رمز کردن را Encoding بخوانیم، چراکه آن یک اصطلاح بیش از حد وسیع است. »
    آخرین ویرایش به وسیله eshpilen : شنبه 07 اردیبهشت 1392 در 13:15 عصر

  10. #10

    نقل قول: آیتم اشتباه در دوره های برنامه نویسی (امنیت)

    با سلام خدمت شما ، با توجه به موارد ذکر شده باید خاطر نشان کنم ، از انجا که در حال حاضر برای encoding و encryption معادل فارسی به جز رمز نگاری وجود ندارد لذا در حال حاضر هر دوی این کلمات را علیرغم تفاوت در کاربرد ، از لحاظ لغوی یکسان در نظر می گیریم ... لذا از شما همکار گرامی خواهشمندم اگر معادل مناسبتری برای این کلمه یافتید به من هم اطلاع دهید تا زین پس به جای رمز نگاری به عنوان ترجمه ای برای کلمه encoding از آن استفاده شود ...
    با تشکر

تاپیک های مشابه

  1. پاسخ: 0
    آخرین پست: دوشنبه 27 آذر 1391, 10:52 صبح
  2. زبان های برنامه نویسی برای امنیت
    نوشته شده توسط rampage3 در بخش امنیت در شبکه
    پاسخ: 5
    آخرین پست: سه شنبه 08 شهریور 1390, 20:00 عصر
  3. امنیت زبان های برنامه نویسی
    نوشته شده توسط dehkadepmc در بخش PHP
    پاسخ: 6
    آخرین پست: یک شنبه 24 بهمن 1389, 01:48 صبح
  4. پیشنهاده برگزاری دوره های برنامه نویسی
    نوشته شده توسط rezaiy.ali در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 1
    آخرین پست: پنج شنبه 23 خرداد 1387, 06:14 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •