欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用RSA加密解密文件

 更新時間:2020年06月28日 08:44:34   作者:Cosmop01itan  
這篇文章主要為大家詳細介紹了C#使用RSA加密解密文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C#使用RSA加密解密文件的具體代碼,供大家參考,具體內(nèi)容如下

加密代碼:

//加密代碼,注意會覆蓋原文件,里面有我的公鑰,你要用時記得覆蓋我的公鑰
 private bool encryptFile(string filename)
  {
   FileStream f;
   try
   {
    f = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
   }
   catch
   {
    return false;
   }
   Random r = new Random();
   Thread.Sleep(10*r.Next(3,8));
   RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(1024);
   rsa.FromXmlString("<RSAKeyValue><Modulus>w7nNT8U7kwTw8UqLk0lROxmfTRZnQrMH1QrNyUGtoeAJ3w+iH08j+h83cPWxwPoxpXm1cgCLFWtCFWY1rkQDCCLxJhUIwYTbGKTg9h0uUVfNxGiNji7dcHShd01UYpZjHCwOar1wjJD4vJqVJCk++59UUMhE9IUATuSUVpRy1bE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>");
   //導(dǎo)入密鑰
   byte[] data = new byte[16];
   ArrayList con = new ArrayList();
   while(f.Read(data, 0, 16)!=0)
   {

    byte[] result = rsa.Encrypt(data,false);
    //Thread.Sleep(10 * r.Next(2, 7));
    con.Add(result);
   }
   //加密
   f.Seek(0, SeekOrigin.Begin);
   foreach(byte[] d in con)
   {
    f.Write(d, 0, d.Length);
   }

   f.Close();
   return true;
}

解密代碼:

//解密代碼,覆蓋原文件,返回值表示是否解密成功
 private bool decryptFile(string filename,string key)
  {
   FileStream f;
   try
   {
    f = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
   }
   catch
   {
    return false;
   }
   RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(1024);
   try
   {
    rsa.FromXmlString(key);
   }
   catch
   {
    return false;
   }

   byte[] data = new byte[128];
   ArrayList con = new ArrayList();
   while (f.Read(data, 0, 128) != 0)
   {
    byte[] result;
    try
    {
     result = rsa.Decrypt(data, false);
    }
    catch
    {
     return false;
    }
    con.Add(result);
   }
   //解密
   f.SetLength(con.Count * 16);
   f.Seek(0, SeekOrigin.Begin);
   foreach (byte[] d in con)
   {
    f.Write(d, 0, d.Length);
   }
   f.Close();
   return true;
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C# Csv實現(xiàn)基本的讀寫和轉(zhuǎn)換DataTable

    C# Csv實現(xiàn)基本的讀寫和轉(zhuǎn)換DataTable

    本文主要介紹了C# Csv實現(xiàn)基本的讀寫和轉(zhuǎn)換DataTable,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • C# 中如何利用lambda實現(xiàn)委托事件的掛接

    C# 中如何利用lambda實現(xiàn)委托事件的掛接

    在寫一個小程序的時候,碰到了這樣的問題,需要用委托來掛接事件,但是又想在這事件中使用局部的變量,而委托一旦定義好后,掛接方就沒有辦法再添加額外的形參了。那有沒有什么辦法,可以實現(xiàn)呢
    2013-07-07
  • C#純代碼實現(xiàn)打字游戲

    C#純代碼實現(xiàn)打字游戲

    這篇文章主要介紹了這篇文章主要為大家詳細介紹了C#純代碼實現(xiàn)打字游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • WPF 在image控件用鼠標(biāo)拖拽出矩形的實現(xiàn)方法

    WPF 在image控件用鼠標(biāo)拖拽出矩形的實現(xiàn)方法

    這篇文章主要介紹了WPF 在image控件用鼠標(biāo)拖拽出矩形的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • 一看就懂:圖解C#中的值類型、引用類型、棧、堆、ref、out

    一看就懂:圖解C#中的值類型、引用類型、棧、堆、ref、out

    這篇文章主要介紹了一看就懂:圖解C#中的值類型、引用類型、棧、堆、ref、out,本文用淺顯易懂的語言組織介紹了這些容易混淆的概念,需要的朋友可以參考下
    2015-06-06
  • 在C#中調(diào)用VBScript、javascript等腳本的實現(xiàn)代碼

    在C#中調(diào)用VBScript、javascript等腳本的實現(xiàn)代碼

    在C#中調(diào)用VBScript、javascript等腳本的實現(xiàn)步驟,需要的朋友可以參考下。
    2009-11-11
  • c# HashSet的擴容機制需要注意的

    c# HashSet的擴容機制需要注意的

    這篇文章主要介紹了c# HashSet的擴容機制需要注意的兩個地方,文中講解非常細致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • C#圖像處理之邊緣檢測(Smoothed)的方法

    C#圖像處理之邊緣檢測(Smoothed)的方法

    這篇文章主要介紹了C#圖像處理之邊緣檢測(Smoothed)的方法,使用自定義smoothed算子實現(xiàn)對圖像邊緣檢測的功能,需要的朋友可以參考下
    2015-04-04
  • C#編程實現(xiàn)自定義熱鍵的方法

    C#編程實現(xiàn)自定義熱鍵的方法

    這篇文章主要介紹了C#編程實現(xiàn)自定義熱鍵的方法,涉及C#鍵盤按鍵設(shè)置的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • C#?字典Dictionary的具體用法

    C#?字典Dictionary的具體用法

    本文主要介紹了C#?字典Dictionary的具體用法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07

最新評論