سورس کد رمز گذاری و رمز گشایی فایل در سی شارپ


دات وایت | DotWhite.ir
سورس کد رمز گذاری و رمز گشایی فایل در سی شارپ

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

فضاهای نامی مورد نیاز 

using System.Security.Cryptography;
using System.IO;

سورس کد رمزنگاری فایل

public byte[] AES_Encrypt(byte[] bytesToBeEncrypted, byte[] passwordBytes)
{
byte[] encryptedBytes = null;

// Set your salt here, change it to meet your flavor:
// The salt bytes must be at least 8 bytes.
byte[] saltBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };

using (MemoryStream ms = new MemoryStream())
{
using (RijndaelManaged AES = new RijndaelManaged())
{
AES.KeySize = 256;
AES.BlockSize = 128;

var key = new Rfc2898DeriveBytes(passwordBytes, saltBytes, 1000);
AES.Key = key.GetBytes(AES.KeySize / 8);
AES.IV = key.GetBytes(AES.BlockSize / 8);

AES.Mode = CipherMode.CBC;

using (var cs = new CryptoStream(ms, AES.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(bytesToBeEncrypted, 0, bytesToBeEncrypted.Length);
cs.Close();
encryptedBytes = ms.ToArray();
}
}
return encryptedBytes;
}

}
  تابع ()EncryptFile را در داخل دکمه یا هر جا که خواستین میتونید استفاده کنید.
public void EncryptFile()
{
string file = "C:SampleFile.DLL";
string password = "abcd1234";

byte[] bytesToBeEncrypted = File.ReadAllBytes(file);
byte[] passwordBytes = Encoding.UTF8.GetBytes(password);

// Hash the password with SHA256
passwordBytes = SHA256.Create().ComputeHash(passwordBytes);

byte[] bytesEncrypted = AES_Encrypt(bytesToBeEncrypted, passwordBytes);

string fileEncrypted = "C:SampleFileEncrypted.DLL";

File.WriteAllBytes(fileEncrypted, bytesEncrypted);
}





سورس کد رمزگشایی فایل 

public byte[] AES_Decrypt(byte[] bytesToBeDecrypted, byte[] passwordBytes)
{
byte[] decryptedBytes = null;

// Set your salt here, change it to meet your flavor:
// The salt bytes must be at least 8 bytes.
byte[] saltBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };

using (MemoryStream ms = new MemoryStream())
{
using (RijndaelManaged AES = new RijndaelManaged())
{
AES.KeySize = 256;
AES.BlockSize = 128;

var key = new Rfc2898DeriveBytes(passwordBytes, saltBytes, 1000);
AES.Key = key.GetBytes(AES.KeySize / 8);
AES.IV = key.GetBytes(AES.BlockSize / 8);

AES.Mode = CipherMode.CBC;

using (var cs = new CryptoStream(ms, AES.CreateDecryptor(), CryptoStreamMode.Write))
{
cs.Write(bytesToBeDecrypted, 0, bytesToBeDecrypted.Length);
cs.Close();
decryptedBytes = ms.ToArray();
}
}
return decryptedBytes;
}
}

تابع ()DecryptFile را در داخل دکمه یا هر جا که خواستین میتونید استفاده کنید.

public void DecryptFile()
{
string fileEncrypted = "C:SampleFileEncrypted.DLL";
string password = "abcd1234";

byte[] bytesToBeDecrypted = File.ReadAllBytes(fileEncrypted);
byte[] passwordBytes = Encoding.UTF8.GetBytes(password);
passwordBytes = SHA256.Create().ComputeHash(passwordBytes);

byte[] bytesDecrypted = AES_Decrypt(bytesToBeDecrypted, passwordBytes);

string file = "C:SampleFile.DLL";
File.WriteAllBytes(file, bytesDecrypted);
}

منبع : دات وایت | DotWhite.IR



تاریخ انتشار : پنجشنبه 14 فروردين 1399 ساعت: 14:2 | نظرات()
برچسب ها : , , , , , , , , , , , , , , , , , , , ,

نویسنده :

بازديد : 342

موضوع: سی شارپ , کد های مفید ,

بخش نظرات این مطلب
نام
ایمیل (منتشر نمی‌شود) (لازم)
وبسایت
:) :( ;) :D ;)) :X :? :P :* =(( :O @};- :B /:) :S
نظر خصوصی
مشخصات شما ذخیره شود ؟ [حذف مشخصات] [شکلک ها]
کد امنیتیرفرش کد امنیتی