در این قسمت از وبسایت پرووید آموزش تصویری کار با کلاس SecureString در زبان سی شارپ را به صورت رایگان از وبسایت پرووید به شما تقدیم میکنیم. و امیدواریم که مورد توجه تمامی عزیزان قرار بگیرد.
کلاس SecureString چیست؟
به بیان ساده کلاس SecureString در دات نت برای کارکردن با داده های سری و حساس مورد استفاده قرار میگیرند. این کلاس قابلیت های جذابی نسبت به کلاس معمولی String دارند که در این قسمت به بررسی این قابلیت ها خواهیم پرداخت. اولین موضوع در رابطه با کلاس SecureString این است که این کلاس قابل ارث بری نمی باشد. در واقع SecureString کلاسی است که برخی از مکانیسم های امنیتی را نسبت به کلاس ساده String در خود جای داده است. این کلاس اطلاعات و رشته های حساس را در حافظه سیستم در قالب متن معمولی ذخیره سازی نمی کند. در واقع مقدار درون یک Object از نوع کلاس SecureString به صورت خودکار توسط مکانیزم هایی در حافظه محافظت می شود. البته برنامه شما می تواند مقدار درون یک Object را به طور ظاهری نشان دهد. اما این قابلیت نیز وجود دارد که با استفاده از یک متد به نام MakeReadOnly امکان تغییر دادن مقدار درون آن رشته وجود نداشته باشد. حداکثر تعداد کاراکتر هایی که در یک Object از نوع کلاس SecureString می توان قرارداد 65636 کاراکتر است.
مقایسه کلاس String و SecureString
همانطور که احتمالاً میدانید کلاس String به صورت Immutable و یا غیر قابل تغییر کار می کند. این بدان معناست که زمانی که یک Object از نوع کلاس String ایجاد میشود و پس از آن مقدار درون آن تغییر میکند در واقع یک Object جدید ایجاد میگردد و Object قبلی توسط Garbage Collector از بین خواهد رفت. البته در رابطه با Object هایی که از نوع کلاس String هستند نمیتوان به صورت برنامه نویسی زمانبندی کرد که عملیات Garbage Collector چه زمانی رخ بدهد. یکی دیگر از مواردی که در رابطه با کلاس String وجود دارد این است که داده هایی که جز داده های حساس تلقی می شوند را نباید در این کلاس ذخیره کرد. برای مثال ذخیره کردن داده هایی از نوع پسورد، گذرواژه، شماره کارت های اعتباری و دادههای شخصی نباید در Object هایی از این کلاس ذخیره بشوند چرا که امکان منتشر شدن آنها وجود دارد.
این در حالی است که Object هایی که از کلاس SecureString ساخته میشوند شبیه به Object هایی که از کلاس String ایجاد میگردند دارای یک مقدار متنی هستند. اما مقدار متنی درون این نوع از Object ها در حافظه توسط مکانیسم های امنیتی محافظت می شود. برای مثال استفاده کردن از رمزنگاری و یا همان Encryption که توسط سیستم عامل فراهم می گردد می تواند این دادهها را محافظت کند. علاوه بر این دادههای درون یک Object از نوع SecureString را میتوان به صورت فقط خواندنی و یا ReadOnly تنظیم کرد. با استفاده از متد Dispose که توسط این کلاس در دسترس قرار میگیرد میتوان از Garbage Collector خواست که Object مورد نظر را از حافظه حذف کند. این نیز یکی دیگر از نقاط تمایز کلاس SecureString نسبت به کلاس String می باشد. در این آموزش ویدیویی و رایگان از وبسایت پرووید در رابطه با کار کردن با کلاس SecureString صحبت خواهیم کرد در این آموزش خواهید دانست که چگونه می توانید داده های حساس خود را به جای استفاده کردن از کلاس معمولی String در Object هایی از کلاس SecureString ذخیره کرده و سپس از آنها استفاده کنید.