فناوری اطلاعات

.فعالیت این وبلاگ در زمینه برنامه نویسی دات نت ،شبکه های کامپیوتری و اخبار فناوری می باشد

فناوری اطلاعات

.فعالیت این وبلاگ در زمینه برنامه نویسی دات نت ،شبکه های کامپیوتری و اخبار فناوری می باشد

آخرین نظرات

رمزنگاری و رمزگشایی رشته توسط کلید در C#.net

سید محسن علوی | يكشنبه, ۲۶ آبان ۱۳۹۲، ۱۱:۴۹ ق.ظ

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

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

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Security.Cryptography;
using System.Windows.Forms;

//*******************

 

class Encrypt_CLS
    {
        Rijndael RJ = Rijndael.Create();
        MD5CryptoServiceProvider MD = new MD5CryptoServiceProvider();

 

        private byte[] MD5Hash(string Value)
        {
            return MD.ComputeHash(ASCIIEncoding.ASCII.GetBytes(Value));
        }

 

        public string Encrypt_Text(string Text_TO_Encrypt, string Key)
        {
            RJ.Key = MD5Hash(Key);
            RJ.Mode = CipherMode.ECB;
            byte[] To_Encrypt = Encoding.ASCII.GetBytes(Text_TO_Encrypt);
            return Convert.ToBase64String(RJ.CreateEncryptor().TransformFinalBlock(To_Encrypt, 0, To_Encrypt.Length));
        }

 

        public string Decrypt_Text(string Encrypted_Text, string Key)
        {
            try
            {
                RJ.Key = MD5Hash(Key);
                RJ.Mode = CipherMode.ECB;
                byte[] To_Decrypt = Convert.FromBase64String(Encrypted_Text);
                return ASCIIEncoding.ASCII.GetString(RJ.CreateDecryptor().TransformFinalBlock(To_Decrypt, 0, To_Decrypt.Length));

 

            }
            catch (Exception)
            {
                MessageBox.Show("Invalid Key", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return null;
            }
        }
    }
حال میتوانیم از کلاس فوق برای رمز نگاری با یک کلمه کلیدی استفاده کنیم که باید باهمان کلمه کلیدی هم میتوان متن رمز شده را باز کرد و مطالعه نمود.

 

 

نظرات  (۲)

سلام من به همین برنامه به زبان ++Cو بدون استفاده از کلاس و فایل نیاز دارم میتونی واسم بفرستی ؟ ممنون
مرسی خیلی خوب بود

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی