من عدنان بابکانم!

وب بهتر و راحت تر

من عدنان بابکانم!

وب بهتر و راحت تر

انواع رمز نگاری

عدنان بابکان | سه شنبه, ۱۷ بهمن ۱۳۹۶، ۰۹:۳۳ ب.ظ

 

 

رمزنگاری متقارن (Symmetric Encryption)
روش رمزنگاری متقارن برای انجام رمزنگاری و رمزگشایی از یک کلید یکسان استفاده میکند. همانطور که در شکل زیر هم نشان داده شده است، فرستنده از یک کلید برای رمز کردن داده رمز نشده استفاده کرده و داده رمز شده را به سمت گیرنده ارسال میکند. گیرنده داده رمز شده را با همان کلیدی که برای رمزکردن داده بکار رفته بود، رمزگشایی کرده و دیتای رمزگشایی شده را میخواند.
از آنجایی که یک کلید در این فرآیند مورد استفاده قرار میگیرد، رمزنگاری متقارن را با نام "رمزنگاری کلید امنیتی" و یا Secret Key Cryptography نیز عنوان میکنند. این نوع از رمزنگاری زمانی بخوبی کار خواهد کرد که با تعداد محدودی از مردم ارتباط و تبادل داده داشته باشید.
 

مشکلی که کلید امنیتی دارد، انتقال آن در بطن شبکه های بزرگ و یا اینترنت و خطر افتادن بدست افراد غیر است. در این فرآیند، هرکسی که کلید امنیتی را در اختیار داشته باشد، میتواند براحتی داده ها را رمزگشایی کند. این مشکل با روش رمزنگاری نامتقارن حل شده است.

رمزنگاری نامتقارن ( Asymmetric Encryption)
رمزنگاری نامتقارن از کلیدهای متفاوتی برای رمزنگاری و رمزگشایی استفاده میکند. در این نوع رمزنگاری، کاربر نهایی در شبکه عمومی و یا خصوصی، یک جفت کلید در اختیار دارد: یک کلید عمومی برای رمزکردن و یک کلید اختصاصی برای رمزگشایی. در اینجا باید دقت داشت که کلید اختصای از کلید عمومی بدست نمیآید.
روش رمزنگاری نامتقارن در مقابل حملات هکرها، امنیت را پایدار کرده است. در این روش، فرستنده داده را با کمک یک کلید عمومی کد کرده و گیرنده پیام را با استفاده از یک کلید تصادفی که توسط فرستنده کلید عمومی ایجاد میشود، کدگشایی میکند.


کدها (Ciphers)
رمزنگاری بر بحث امن نویسی دلالت میکند و متعاقب آن برای تعریف کد چیزی نداریم بگوییم جر آن که الگوریتمی است که در رمزنگاری و رمزگشایی استفاده میشود. روش سنتی و مرسومی که در رمزنگاری و رمزگشایی مورد استفاده قرار میگیرد، در شکل متفاوتی قرار دارد. در این روش به ازای هر حرف از الفبا، شماره ای در نظر گرفته و بوسیله آن داده ها رمز میشوند. فقط در صورتی که هکر سیستم شماره گذاری را بشناسد، میتواند دیتا را رمزگشایی کند.
در علم رمزنگاری، الگوریتم کد که برای رمزکردن مورد استفاده قرار میگیرد، با نام Enciphering و در بحث رمزگشایی با نام Deciphering شناخته میشود.
مثال:
A b c d e f g h…z در دنباله اعداد 26....4 3 2 1 کد میشوند. داده ها نیز مانند این مثال کد میشوند و در مثابل بخوبی و امنیت کامل رمزگشایی خواهند شد. در یک کد، داده بشکل رمز نشده نمایش داده میشود اما در ادامه توسط یک کلید رمز خواهند شد. بسته به شرایط، کلید میتواند یک نماد یا بصورت اشکال دیگری از متن باشد. اگر داده بسیار محرمانه باشد، استفاده از کلید به فرستنده و گیرنده محدود خواهد شد اما در موارد عادی در شبکه های باز، برخی کلیدها بدون این که بر اصل داده اثر منفی بگذارند، به اشتراک گذارده میشوند. انواع مختلفی از کدها وجود دارند:

کدهای کلاسیک
کدهای کلاسیک اساسی ترین نوع کدها هستند که بر حسب حروف الفبا مثل A-Z عمل میکنند. پیاده سازی آن معمولا بصورت دستی و یا با استفاده از دیوایس های مکانیکی ساده انجام میشود. این روش زیاد قابل اعتماد نیست. دو نوع از کدهای کلاسیک عبارتند از:
•کد جانشینی ( substitution cipher): بخش متنی توسط متن رمز شده جایگزین میشود. در این جایگزینی، بیت ها، کاراکترها یا عبارت ها با بیت ها، کاراکترها و عبارات متفاوتی جایگزین خواهند شد.
•کد تقدم و تاخر (transposition cipher): حروف موجود در متن رمزنشده، به منظور تبدیل به متن رمزی، تغییر میکنند. در واقع متن رمز شده، جایگشتی از متن اولیه است.

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

بر اساس نوع کلیدی که مورد استفاده قرار میگیرد
•رمزنگاری کلید عمومی (الگوریتم کلید متقارن): بک کلید برای رمزکردن و رمزگشایی مورد استفاده قرار میگیرد.
•رمزنگاری کلید خصوصی (الگوریتم کلید نامتقارن): دو کلید مختاف در رمزنگاری و رمزگشایی مورد استفاده قرار میگیرند.

بر اساس نوع داده ورودی
•کدهای قطعه بندی شده: به الگوریتمی اشاره میکند که بر روی بلوکی (گروهی از بیت ها) با سایز و تغییر ثابتی که توسط کلید متقارن ایجاد میشود، عمل میکند.
•جریانی از کدها: به کدهای کلید متقارن اشاره میکند. این روش با ترکیب ارقام رمز نشده با جریانی از کلید ( جریانی از ارقام رمز شده شبه تصادفی) ایجاد میشود.

 

منبع: tosinso.com

  • عدنان بابکان

HTML چیست؟

عدنان بابکان | چهارشنبه, ۲۹ آذر ۱۳۹۶، ۰۳:۱۷ ب.ظ

سلام!

در این مطلب قصد دارم براتون به طور خلاصه و مقید و ساده توضیح بدم که HTML چیه و چه کمکی به دنیای اینترنت میکنه؟

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

حالا داخل پاسخ HTTP ای که براتون ارسال میشه چند تکه کد هست که شامل HTML - CSS و جاوااسکریپت هست و مرورگر شما با استفاده از این تکه کد ها وبسایت رو برای شما تشکیل میده و در حقیقت شما وبسایت رو دانلود کردید. دقیقا مثل اینکه یک فیلم رو دانلود می کنید و با نرم افزار محصوص اون رو باز می کنید و تماشا می کنید.

به طور حرفه ای تر توضیح بدیم باید ابتدا با دو مفهوم HTTP و HTML آشنا بشیم. کلمه HTTP مخفف HyperText Transfer Protocol هست که به معنای پروتکل رد و بدل ابر متن هست و HTML هم مخفف HyperText Markup Language هست که به معنای زبان نشانه گذاری ابر متن هست. با استفاده از HTML ساختار صفحه و اسکلت بندی اون تعریف میشه و میشه با اون صفحات وب ساده ای ساخت که البته میشه با CSS و JavaScript اون ها رو پویا تر و زیبا تر جلوه داد. در HTML کد هایی تعریف میشه که به صورت تگ هستند و مانند برچسب گذاری شاخه ای عمل می کنند و بیشتر تگ ها نیاز به باز و بسته شدن دارند که این امر باعث میشه وارثان اون تگ و زیر تگ ها به راحتی مشخص بشه.

 

امیدوارم مطلب خوبی براتون بوده باشه

  • عدنان بابکان

لینک های غیر قابل راست کلیک در جاواسکریپت

عدنان بابکان | سه شنبه, ۱۴ آذر ۱۳۹۶، ۰۷:۰۸ ب.ظ

اگر می خواهید در وبسایت خود امکان راست کلیک بر روی لینک ها رو به هر دلیلی بردارید حتما با روش های مختلفی امتحان کردید اما نشده!

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

var idSelector = false;
window.onload = function() {
  document.getElementsByTagName("body")[0].innerHTML += '<style>.link-style { color: #0000EE; cursor: pointer; text-decoration: underline; }</style>';
  if(idSelector) {
    var links = document.querySelectorAll("a#" + idSelector);
  } else {
    var links = document.getElementsByTagName("a");
  }
  for(var i=0, max=links.length; i<max; i++) {
    var getLinkHref = links[i].getAttribute("href");
    links[i].removeAttribute("href");
    links[i].classList.add("link-style");
    links[i].setAttribute("onclick", 'window.location="' + getLinkHref + '";');
  }
};

روند کار این کد بدین صورت هست که لینک های داخل صفحه رو تبدیل به یک نوشته ساده با استایل لینک میکنه و تابعی برای ارجاع به لینک مربوطه در ایونت کلیک اون قرار میده که باعث میشه کاربر نتونه روی لینک راست کلیک کنه اما با کلیک بر روی اون بتونه به صفحه مربوطه ارجاع داده بشه.

همونطور که گفتم این کد تمامی لینک ها بدین شکل درمیاره و برای اعمال محدودیت در این امر باید داخل متغیر idSelector آی دی المنت هایی که می خواهید در این حالت استفاده بشه رو قرار بدید. مثل:

idSelector = 'noRightClick'

 

امیدوارم مطلب و کد به دردتون بخوره

  • عدنان بابکان

کپچا چیست؟ تعریف اسپم و اسپمر

عدنان بابکان | دوشنبه, ۱۵ آبان ۱۳۹۶، ۰۹:۴۲ ب.ظ

سلام!

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

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

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

برای طراحی یک سیستم کپچا کافیه با استفاده از یک کتبخانه تصویری مانند GD در زبان برنامه نویسی PHP یک تصویر رو با یک متن مشخص تولید کنید و همون متن رو داخل یک SESSION مختص به همان کاربر قرار بدید و وقتی که کاربر مقدار رو وارد کرد مقایسه کنید که آیا مقدار وارد شده با مقدار ذخیره شده مساوی هست یا خیر. راحت بود نه؟

البته نسخه های پیچیده تری مانند نسخه صوتی یا ویدیویی هم برای جلوگیری از اسپمر ها هم وجود داره که خارج از بحث ما هست!

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

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

adnanbabakan [at] gmail [dot] com

یعنی به جای @ از [at] و به جای . از [dot] استفاده کنید. در این حالت بیشتر نرم افزار ها این متن رو به عنوان ایمیل تشخیص نمیدن و بیخیالش میشن.

 

امیدوارم مطلب مفیدی براتون بوده باشه

  • عدنان بابکان

حق کپی رایت رو جدی بگیریم!

عدنان بابکان | سه شنبه, ۹ آبان ۱۳۹۶، ۰۵:۴۴ ب.ظ
حق کپی رایت چیست؟
به عنوان یک کاربر عادی اینترنت و یا یک برنامه نویس شاید به این کلمه برخورده باشید یا اینکه حتما اون رو شنیده باشید اما معنی اون رو ندونید!
در جامعه مجازی اینترنت که یک مکان همگانی هست حتما باید آثار به نام خود فردی که خالق اون هست ثبت بشه تا هم حق و حقوقی براش در نظر گرفته بشه و هم اینکه افتخاری برای خالقش به ارمغان بیاره. اما خب بعضی اوقات افرادی هستن که این موارد رو زیر پا میزارن و نمی خوان که این اتفاق بیوفته و خب حقوق خالق اثر پای مال میشه.
بعضی اوقات نرم افزار هایی نوشته میشه, طراحی هایی انجام میشه که خالق اثر انتظار داره اون ها رو بفروشه و ملت اون رو خریداری کنند اما بعضی ها با خریداری اون رو به دیگرون با کپی کردن هم میدن تا استفاده کنن و توجیه میکنن که خریدار هستن و حق کامل بر محصولی که خریدن رو دارن. بله کاملا حق با اونهاست تا وقتی که شما یک نسخه خریدید حق دارید از اون استفاده کنید اما اگر بخواهید اون رو به کس دیگه ای بدید نباید اون رو کپی کنید بلکه محصول خودتون رو به اون بدید در غیر اینصورت انگار از جیب طراح دارید دزدی می کنید!
حالا بیایید در مورد اینکه چرا باید اصلا یک محصول دیجیتال رو خریداری کرد بحث کنیم!
شما فرض کنید وارد یک فروشگاه مانند یک کتاب فروشی شده اید و یک کتاب را بدون اجازه کتابدار برداشته اید و از فروشگاه بیرون رفته اید, مگه این دزدی محسوب نمیشه؟ همونقدر که برای یک کتاب زحمت کشیده شده تا تولید بشه برای یک نرم افزار هم به همین صورت زحمت کشیده شده پس انتظار نداشته باشید حتما به رایگان به دستش بیارید!
برای حمایت از کپی رایت حتما اون رو رعایت کنید و هیچ وقت کار کس دیگه ای رو به اسم خودتون به کار نبرید!
  • عدنان بابکان