0% found this document useful (0 votes)
84 views3 pages

تفاوت Hashing و Encryption چیست

Uploaded by

Gullayaz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
84 views3 pages

تفاوت Hashing و Encryption چیست

Uploaded by

Gullayaz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

‫تفاوت ‪ Hashing‬و ‪ Encryption‬چیست ؟‬

‫مقاله امروز درباره تعریف هر یک از ‪ ‬اص طالحات‪ Hashing ‬و‪ Encryption ‬اس ت و مش خص می ک نیم‬


‫این دو چه تفاوت هایی باهم دارند ‪ .‬حتما این اصطالحات را در زبان هایی مانند ‪ php‬و حتی فریم ورک ه ایی‬
‫مانند‪ ‬الراول‪ ‬شنیده اید ‪.‬‬
‫‪ Hashing‬یا درهم سازی چیست ؟‬
‫فرآیند ‪ Hashing‬یا درهم سازی به تبدیل کردن یک رشته داده به ی ک مق دار ی ا رش ته ب ا ان دازه ث ابت ک ه این‬
‫رشته یا مقدار خروجی نمایانگر رشته اصلی باشد گفته می شود‪ .‬تص ور کنی د ک ه ش ما ی ک فای ل مت نی ب ا ‪10‬‬
‫هزار خط متن را به یک الگوریتم درهم س ازی ی ا ‪ Hashing‬می س پارید و خ روجی آن ی ک رش ته داده ‪128‬‬
‫بیتی خواهد بود ‪ ،‬در همین حین اگر شما یک فای ل مت نی ب ا ‪ 1‬خ ط متن هم ب ه همین الگ وریتم درهم س ازی ی ا‬
‫‪ Hashing‬تحویل دهید در نهایت خروجی شما ن یز ی ک رش ته داده ‪ 128‬بی تی خواه د ب ود‪ .‬تص ور کنی د ش ما‬
‫هزاران فایل داده دارید با حجم های مختلف که می خواهید در آنها جستجو کنید ‪ ،‬به جای اینک ه ب ه دنب ال فای ل‬
‫اصلی بگردید کافیست که فقط به دنبال مقدار ‪ Hash‬مورد نظر بگردید و این فرآیند جستجوی شما را در پایگاه‬
‫ه ای داده بس یار س ریع می کن د‪ .‬یکی از پ ر ک اربردترین اس تفاده ه ای ی ک ت ابع درهم س ازی ی ا ‪Hashing‬‬
‫‪ Function‬در پایگاه داده های وب سایت ها یا حتی سیس تم خ ود ش ما ب رای نگه داری رمزه ای عب ور اس ت‪.‬‬
‫تمامی رمزهای عبوری که در پایگاه داده یک وب سایت ذخیره می ش وند ب ه ح الت ‪ Hash‬ش ده نگه داری می‬
‫شوند ‪ ،‬این یعنی اینکه اگر رمز عبور شما ‪ 1‬کاراکتر باشد و یا اینک ه ‪ 100‬ک اراکتر باش د در نه ایت بص ورت‬
‫مثال یک رشته داده ‪ 128‬بیتی در پایگاه داده بصورت درهم سازی شده نگهداری می شود‪ .‬هر بار که ش ما می‬
‫خواهید به وب سایت وارد شوید ‪ ،‬رمز عبور شما دریافت می شود و تبدیل به مقدار یا ‪ Hash Value‬می شود‬
‫و با پایگاه داده مورد نظر مقایسه می شود ‪ ،‬اگر مقادیر برابر بود یعنی رم ز ش ما درس ت اس ت ‪ ،‬دیگ ر ف رقی‬
‫نمی کند رمز شما یک کاراکتر باشد یا ده ه ا ک اراکتر در نه ایت س رعت جس تجو در چ نین ح التی بس یار ب اال‬
‫خواهد رفت‪.‬‬
‫نکته مهم در خصوص توابع درهم سازی یا ‪ Hashing Function‬ها این است که شما هر چقدر هم که اندازه‬
‫فایل داده ورودی داشته باشید در نهایت یک رشته داده مشخص خروجی خواهید داشت و حتی اگر یک بیت از‬
‫داده های اولیه شما تغییر کند ‪ ،‬خروجی شما کامال متفاوت خواهد بود و این یعنی اینکه می ت وان ب ا اس تفاده از‬
‫الگوریتم های درهم سازی یا ‪ Hashing‬صحت داده های شما را بررس ی ک رد ‪ ،‬هم ان ک اری ک ه در بررس ی‬
‫رمزهای عبور شما انجام می شود‪ .‬شما اگر می خواهید از صحت و تم امیت داده ارس الی ی ا دری افتی خ ود در‬
‫مسیر یک شبکه اطمینان حاصل کنی د کافیس ت ب ه ج ای اینک ه ب ه ازای ه ر بیت ارس الی ی ک بس ته تاییدی ه ی ا‬
‫‪ Acknowledge‬دریافت کنید ‪ ،‬ابتدا در مبدا از فایل خ ود ی ک مق دار ‪ Hash‬تهی ه کنی د و بع د از رس یدن ب ه‬
‫مقصد نیز مجددا از فایل خود یک ‪ Hash‬تهیه کنید و مقادیر را با هم مقایسه کنی د ‪ ،‬در ص ورتیکه مق ادیر ش ما‬
‫یکسان باشد فایل شما حتی اگر چند ترابایت داده نیز داشته باشد قطعا سالم و درست خواهد بود‪ .‬نکته بسیار مهم‬
‫در خصوص الگوریتم های درهم سازی یا ‪ Hashing‬این است که شما می توانید داده های خ ود را ب ه مق ادیر‬
‫‪ Hash‬تبدیل کنید اما به هیچ عنوان نمی توانید از مقادیر ‪ Hash‬داده های خود را استخراج کنید‪ .‬یعنی ش ما می‬
‫توانید یک فایل یک ترابایتی داده را تب دیل ب ه ی ک مق دار ‪ 128‬بی تی ‪ Hash‬کنی د ام ا قطع ا نمی توانی د از این‬
‫مقدار ‪ Hash‬داده یک ترابایتی خود را استخراج کنید ‪ ،‬به همین دلیل است که از الگوریتم های درهم سازی ی ا‬
‫‪ Hashing‬به عنوان الگوریتم های رمزنگاری یک طرفه یا ‪ One Way‬یاد می شود یعنی داده فق ط تب دیل ب ه‬
‫مق دار ‪ Hash‬می ش ود و عکس این عم ل قطع ا انج ام نخواه د ش د‪ .‬البت ه از الگ وریتم ه ای درهم س ازی ی ا‬
‫‪ Hashing‬در مصارف یا بهتر بگوییم در الگوریتم های دیگ ر رمزنگ اری بص ورت ترکی بی ن یز اس تفاده می‬
‫شود که از جمله آنها می توانیم به استفاده از ‪ Hashing‬در رمزنگاری و رمزگشایی امضاهای دیجیت ال اش اره‬
‫کنیم‪.‬خروجی الگوریتم های درهم سازی یا ‪ Hashing‬به هیچ عن وان در ص ورت متف اوت ب ودن ورودی ه ای‬
‫داده ای آن یکسان نخواهد بود مگر اینکه داده ورودی یکسان باشد‪.‬‬
‫رمزنگاری یا ‪ Encryption‬چیست ؟‬
‫فرآیند رمزنگاری یا‪ Encryption ‬به تبدیل کردن داده ها به قالبی که فقط افراد مجاز می توانن د آن را مش اهده‬
‫کنن د گفت ه می ش ود ‪ ،‬در این تب دیل ق الب داده تب دیل ش ده را در اص طالح ‪ Cipher-Text‬می ن امیم‪ .‬فرآین د‬
‫رمزنگاری یا ‪ Encryption‬دارای قدمت چند هزار س اله می باش د و ب ه ان واع و اقس ام روش ه ا از آس ان ت ا‬
‫سخت طبقه بندی می ش ود‪ .‬مهم ترین نکت ه ای ک ه در خص وص رمزنگ اری وج ود دارد این اس ت ک ه فرآین د‬
‫رمزنگاری شما متناسب با اندازه و مقدار داده های شما می باشد و با اضافه شدن میزان داده های اطالعاتی به‬
‫الگوریتم ه ای رمزنگ اری طبیعت ا ‪ Cipher-Text‬ه ای خ روجی ن یز دارای ان دازه متناس بی می باش ند‪ .‬ش ما‬
‫برخالف الگوریتم های درهم سازی یا‪ Hashing ‬در الگوریتم های رمزنگ اری ی ا‪ Encryption ‬می توانی د‬
‫از داده های رمزنگاری شده داده های خود را ب یرون بیاوری د و ب ه این عملی ات رمزگش ایی ی ا ‪Decryption‬‬
‫گفته می ش ود‪ .‬در فرآین د رمزگش ایی ش ما حتم ا بای د ب ه عن وان ی ک ک اربر مج از کلی د رمزگش ایی الگ وریتم‬
‫رمزنگاری متناظر را بایستی داش ته باش ید ت ا بتوانی د فرآین د رمزگش ایی را ب ه درس تی انج ام دهی د‪ .‬الگ وریتم‬
‫رمزنگاری یا‪ Encryption ‬ای به عنوان الگوریتم رمزنگاری ق وی ش ناخته می ش ود ک ه ب دون داش تن کلی د‬
‫رمزگشایی نشود به داده های آن دسترسی پیدا کرد‪ .‬ان واع و اقس ام الگ وریتم ه ای رمزنگ اری وج ود دارد ک ه‬
‫مهمترین طبقه بندی آنها الگوریتم های رمزنگاری متقارن و نامتق ارن هس تند ‪ ،‬در الگ وریتم ه ای رمزنگ اری‬
‫متقارن همان کلی دی ک ه ب رای رمزنگ اری اس تفاده ش ده اس ت ب رای رمزگش ایی ن یز اس تفاده می ش ود ام ا در‬
‫الگوریتم های رمزنگاری نامتقارن یا ‪ PKI‬از دو کلی د عم ومی و خصوص ی ب رای رمزنگ اری و رمزگش ایی‬
‫استفاده می شود که از درجه امنیت بسیار باالیی برخوردار است‪.‬‬
‫تفاوت ‪ Hashing‬و ‪ Encryption‬در چیست ؟‬
‫درهم سازی داده ها یا ‪ Hashing‬به یک فرآیند یک طرفه گفته می ش ود ک ه در آن ه ر ن وع داده خ روجی در‬
‫نهایت تبدیل به یک رشته داده خروجی با یک اندازه ثابت می شود که به آن ‪ Hash Value‬یا مقدار تابع درهم‬
‫سازی گفته می شود‪ .‬شما نمی توانید از یک ‪ Hash Value‬داده خود را برداشت کنید زیرا این ن وع الگ وریتم‬
‫ها کامال یک طرفه هستند و بیشتر برای تسریع فرآیند جس تجو و اطمین ان از ص حت داده ه ا در هنگ ام انتق ال‬
‫م ورد اس تفاده ق رار می گیرن د‪ .‬الگ وریتم ه ایی مث ل ‪ MD‬و ‪ SHA‬از ان واع الگ وریتم ه ای درهم س ازی ی ا‬
‫‪ Hashing‬هستند که بیشترین استفاده را دارند‪ .‬رمزنگاری یا ‪ Encryption‬به تبدیل داده ها به ق البی گفت ه می‬
‫شود که فقط برای کاربران مجاز قابل مشاهده باشد و هیچ کاربر غیرمجازی نتواند داده واقعی را مش اهده کن د‪.‬‬
‫به داده ای که رمزنگاری شده باشد در اصطالح ‪ Cipher-Text‬گفته می شود ‪ ،‬اندازه داده ای که رمزنگ اری‬
‫می شود با حجم داده ورودی آن تا حدود زیادی یکسان است و شما می توانید از داده های رمزنگاری ش ده داده‬
‫خود را خارج کنید که به این فرآیند رمزگشایی گفته می شود‪ .‬الگ وریتم ه ای رمزنگ اری بص ورت کلی ب ه دو‬
‫دسته متقارن با یک کلید برای رمزنگاری و همان کلید برای رمزگشایی و نامتقارن که دارای دو کلی د عم ومی‬
‫و خصوصی برای رمزنگاری و رمزگشایی می شوند تقسیم بندی می شود‪.‬‬

You might also like