ورود / ثبت نام
0
0

رمزگذاری و رمزگشایی در C#

872 بازدید
رمزگذاری و رمزگشایی

رمزگذاری و رمزگشایی

در بعضی مواقع نیاز داریم که اطلاعاتی را رمزگذاری و یا رمزگشائی کنیم. بنابراین به شما آموزش خواهیم داد که چگونه یک اطلاعات را در یک اپلیکیشن رمزگذاری و رمزگشایی کنید. برای این نسخه آموزشی، از اپلیکیشن WPF استفاده کرده ایم. رمزگذاری و رمزگشایی کار آسانی می باشد اما چند نکته را باید به خاطر داشته باشیم.
این مثال به شما نشان خواهد داد که چگونه از C# برای رمزگذاری و رمزگشائی استفاده کنید (با استفاده از salt key برای محافظت از اطلاعات).
این نوع از رمزگذاری، symmetric-key (کلید متقارن) نامیده می شود و به این معنا می باشد کهstring فقط در صورتی رمزگشائی می شود که در قسمت دیگر کلید صحیح را داشته باشیم .
در اینجا کد رمزگذاری و رمزگشائی را قرار داده ایم.

using System;  
using System.Security.Cryptography;  
using System.Text;  
   
namespace DataEncrypterDecrypter  
{  
    public class CryptoEngine  
    {  
        public static string Encrypt(string input, string key)  
        {  
            byte[] inputArray = UTF8Encoding.UTF8.GetBytes(input);  
            TripleDESCryptoServiceProvider tripleDES = new TripleDESCryptoServiceProvider();  
            tripleDES.Key = UTF8Encoding.UTF8.GetBytes(key);  
            tripleDES.Mode = CipherMode.ECB;  
            tripleDES.Padding = PaddingMode.PKCS7;  
            ICryptoTransform cTransform = tripleDES.CreateEncryptor();  
            byte[] resultArray = cTransform.TransformFinalBlock(inputArray, 0, inputArray.Length);  
            tripleDES.Clear();  
            return Convert.ToBase64String(resultArray, 0, resultArray.Length);  
        }  
        public static string Decrypt(string input, string key)  
        {  
            byte[] inputArray = Convert.FromBase64String(input);  
            TripleDESCryptoServiceProvider tripleDES = new TripleDESCryptoServiceProvider();  
            tripleDES.Key = UTF8Encoding.UTF8.GetBytes(key);  
            tripleDES.Mode = CipherMode.ECB;  
            tripleDES.Padding = PaddingMode.PKCS7;  
            ICryptoTransform cTransform = tripleDES.CreateDecryptor();  
            byte[] resultArray = cTransform.TransformFinalBlock(inputArray, 0, inputArray.Length);  
            tripleDES.Clear();   
            return UTF8Encoding.UTF8.GetString(resultArray);  
        }  
    }  
}

همان طور که در تصویر مشاهده می کنید، CipherMode و PaddingMode باید برای هر دو عملیات به یک صورت باشد. گزینه های متعددی برای CipherMode و PaddingMode وجود دارد، می توانید تفاوت آن ها را بخوانید و تصمیم بگیرید که کدام یک برای شما مناسب می باشد. کلید روشی می باشد که اپلیکیشن برای رمزگذاری و رمزگشائی از آن استفاده می کند که باید آن را محفوظ نگاه دارید چرا که هرکس می تواند با استفاده از آن اطلاعات شما را رمزگشایی کند و باید به صورت ۱۲۸ bit و یا حتی bit 192 باشد (حتی بین آنها).

private void encryptbtn_Click(object sender, RoutedEventArgs e)  
{  
    if(plaintext.Text!= string.Empty)  
    {  
        //Here key is of 128 bit  
        //Key should be either of 128 bit or of 192 bit  
        Ciphertext.Text = CryptoEngine.Encrypt(plaintext.Text, "sblw-3hn8-sqoy19");  
    }  
}  
  
private void decryptbtn_Click(object sender, RoutedEventArgs e)  
{  
    if(Ciphertext.Text != string.Empty)  
    {  
        //Key shpuld be same for encryption and decryption  
        decryptedtext.Text = CryptoEngine.Decrypt(Ciphertext.Text, "sblw-3hn8-sqoy19");  
    }  
}  

 

  • پسورد: www.mspsoft.com
آیا این مطلب را می پسندید؟
https://www.mspsoft.com/?p=16385
اشتراک گذاری:
واتساپتوییترفیسبوکپینترستلینکدین
محمد نجفی
مطالب بیشتر
برچسب ها:

نظرات

2 نظر در مورد رمزگذاری و رمزگشایی در C#

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *