亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

【.NET】對文件的對稱加密

2019-11-17 01:26:42
字體:
來源:轉載
供稿:網友
【.NET】對文件的對稱加密
using System;using System.IO;using System.Security.Cryptography;namespace ConsoleApp_SymmetricalEncryption{    class PRogram    {        static void Main(string[] args)        {            SymmetricalEncryption ss = new SymmetricalEncryption();            ss.EncryptFile(@"C:/error.txt", @"C:/error_EncryptFile.txt", ss.Key);            Console.WriteLine("加密成功!");            Console.ReadKey();            ss.DecryptFile(@"C:/error_EncryptFile.txt", @"C:/error_DecryptFile.txt", ss.Key);            Console.WriteLine("解密成功!");            Console.ReadKey();        }    }    /// <summary>    /// 對文件使用對稱加密算法    /// </summary>    public class SymmetricalEncryption    {        /* 對稱加密:          * 需要發送者和接收者協定一個密鑰K,K可以是一個密鑰對,但必須是加密密鑰和解密密鑰之間能夠互相推算出來的。         * 常用的對稱加密算法中,加密解密共享一個密鑰。         * 本例中使用的是同一個密鑰;         *          * 非對稱加密:         * 有一個密鑰對,分別為 公鑰、私鑰(公鑰用來加密,私鑰用來解密)         * 私鑰永遠不需要傳遞給對方;         *                  * 優缺點比較:         * 非對稱加密算法復雜,導致加解密速度慢,只適合與數據量小的場合。         * 對稱加密解密效率高,系統開銷小,適合金星大數據量的加解密。(大文件一般適合使用對稱加密)                  */        /// <summary>        /// 隨機產生的密鑰(也可以自己指定)        /// 【注意:對稱加密算法 加密解密用的Key值是相同的(非對稱加密才分:公鑰和私鑰)】        /// </summary>        public string Key = Guid.NewGuid().ToString().Replace("-", "").ToUpper() + Guid.NewGuid().ToString().Replace("-", "").ToUpper();        /// <summary>        /// 緩沖區大小        /// </summary>        private int bufferSize = 128 * 1024;        /// <summary>        /// 密鑰salt        /// </summary>        private byte[] salt = { 134, 216, 7, 36, 88, 164, 91, 227, 174, 76, 191, 197, 192, 154, 200, 248 };        //salt用來防止窮舉暴力破解(salt是在密鑰導出之前在密碼末尾引入的隨機字節,它使得這類攻擊變得非常困難)        /// <summary>        /// 初始化向量        /// </summary>        private byte[] iv = { 134, 216, 7, 36, 88, 164, 91, 227, 174, 76, 191, 197, 192, 154, 200, 248 };        //初始化向量iv起到的也是增強破解難度的作用        /// <summary>        /// 初始化 并返回對稱加密算法        /// </summary>        /// <param name="argKey"></param>        /// <param name="argSalt"></param>        /// <returns></returns>        private SymmetricAlgorithm CreateRijindael(string argKey, byte[] argSalt)        {            PassWordDeriveBytes pdb = new PasswordDeriveBytes(argKey, argSalt, "SHA256", 1000);            SymmetricAlgorithm sma = Rijndael.Create();            sma.KeySize = 256;            sma.Key = pdb.GetBytes(32);            sma.Padding = PaddingMode.PKCS7;            return sma;        }        /// <summary>        /// 加密文件        /// </summary>        /// <param name="argInFile">輸入文件</param>        /// <param name="argOutFile">輸出加密后的文件</param>        /// <param name="argKey">加密用的Key</param>        public void EncryptFile(string argInFile, string argOutFile, string argKey)        {            using (FileStream inFileStream = File.OpenRead(argInFile),                    outFileStream = File.Open(argOutFile, FileMode.OpenOrCreate))            using (SymmetricAlgorithm algorithm = CreateRijindael(argKey, salt))            {                algorithm.IV = iv;                using (CryptoStream cryptoStream = new CryptoStream(outFileStream, algorithm.CreateEncryptor(),                        CryptoStreamMode.Write))                {                    byte[] bytes = new byte[bufferSize];                    int readSize = -1;                    while ((readSize = inFileStream.Read(bytes, 0, bytes.Length)) != 0)                    {                        cryptoStream.Write(bytes, 0, readSize);                    }                    cryptoStream.Flush();                }            }        }        /// <summary>        /// 解密文件        /// </summary>        /// <param name="argInFile">輸入待解密的文件</param>        /// <param name="argOutFile">輸出解密后的文件</param>        /// <param name="argKey">加密用的Key</param>        public void DecryptFile(string argInFile, string argOutFile, string argKey)        {            try            {                using (FileStream inFileStream = File.OpenRead(argInFile), outFileStream = File.OpenWrite(argOutFile))                using (SymmetricAlgorithm algorithm = CreateRijindael(argKey, salt))                {                    algorithm.IV = iv;                    using (CryptoStream cryptoStream = new CryptoStream(inFileStream, algorithm.CreateDecryptor(),                            CryptoStreamMode.Read))                    {                        byte[] bytes = new byte[bufferSize];                        int readSize = -1;                        int numReads = (int)(inFileStream.Length / bufferSize);                        int slack = (int)(inFileStream.Length % bufferSize);                        for (int i = 0; i < numReads; ++i)                        {                            readSize = cryptoStream.Read(bytes, 0, bytes.Length);                            outFileStream.Write(bytes, 0, readSize);                        }                        if (slack > 0)                        {                            readSize = cryptoStream.Read(bytes, 0, (int)slack);                            outFileStream.Write(bytes, 0, readSize);                        }                        outFileStream.Flush();                    }                }            }            catch (Exception ex)            {                 throw new Exception("解密失?。? + ex.Message);//可能是密鑰輸入的不正確,或者文件被修改過            }        }    }}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97色在线视频观看| 国产精品久久久久久久久男| 日本精品免费一区二区三区| 亚洲黄页视频免费观看| 亚洲男人天堂网| 国产精品一区二区三区毛片淫片| 欧美一级视频免费在线观看| 97香蕉久久超级碰碰高清版| 久久久黄色av| 欧美在线一区二区三区四| 91tv亚洲精品香蕉国产一区7ujn| 国产精品丝袜久久久久久高清| 中文字幕国产亚洲| 亚洲人在线视频| 亚洲黄色av女优在线观看| 日韩av电影免费观看高清| 亚洲在线免费视频| 日韩专区在线观看| 亚洲国产精品久久久久秋霞蜜臀| 国产精品久久97| 国产精品国产三级国产aⅴ浪潮| 日韩欧美亚洲一二三区| 欧美性在线视频| 国产精品一区二区久久久久| 精品亚洲国产视频| 日本国产精品视频| 97国产真实伦对白精彩视频8| 国产91精品青草社区| 亚洲毛片在线看| 国产+成+人+亚洲欧洲| 亚洲精品99久久久久| 57pao国产精品一区| 国产亚洲视频在线| 日本精品视频在线观看| 91精品在线看| 国产精品精品国产| 欧美日韩国产区| 久久久免费电影| 视频在线一区二区| 黑丝美女久久久| 91精品在线国产| 久久久精品国产亚洲| 亚洲夜晚福利在线观看| 欧美一级视频在线观看| 91在线高清视频| 亚洲国产精品999| 国产精品96久久久久久| 国产亚洲精品激情久久| 久久影视电视剧凤归四时歌| 日韩美女在线观看| 粉嫩av一区二区三区免费野| 成人亚洲欧美一区二区三区| xxx一区二区| 美女啪啪无遮挡免费久久网站| 日韩精品视频在线观看网址| 国产激情视频一区| 国产97免费视| 国产乱人伦真实精品视频| 在线观看欧美www| 欧美日韩在线视频观看| 97精品国产97久久久久久免费| 欧美国产日韩一区二区| 欧美成人剧情片在线观看| 亚洲综合一区二区不卡| 亚洲女人被黑人巨大进入al| 成人国产精品一区| 国产精品一区二区久久久久| 亚洲精品国产精品国自产在线| 91chinesevideo永久地址| 久久久久久久国产| 欧美精品久久久久久久久久| 欧美激情综合色综合啪啪五月| www.久久久久久.com| 久久综合网hezyo| 亚洲第一区第一页| 国产精品一区二区三区久久| 91色在线视频| 高跟丝袜欧美一区| 超碰精品一区二区三区乱码| 日本久久中文字幕| 欧美xxxx综合视频| 久久91超碰青草是什么| 国产美女被下药99| 久久视频这里只有精品| 精品久久久久久亚洲精品| 九九热精品视频| 亚洲人成在线一二| 日韩av第一页| 日韩一级裸体免费视频| 免费99精品国产自在在线| 欧美日韩精品中文字幕| 久久久久久中文字幕| 久久亚洲精品一区二区| 日本人成精品视频在线| 国产精品久久久久久亚洲调教| 国产精品永久在线| 亚洲午夜av久久乱码| 久久久精品久久久久| 日本在线观看天堂男亚洲| 神马久久桃色视频| 久久精品99久久香蕉国产色戒| 欧美黑人一区二区三区| 国产精品自拍偷拍| 在线丨暗呦小u女国产精品| 91av在线网站| 日产日韩在线亚洲欧美| 国产一区二区三区四区福利| 日韩**中文字幕毛片| 日韩在线激情视频| 亚洲第一精品自拍| 欧美高清视频在线观看| 一区二区三区视频观看| 久久综合免费视频| 性色av一区二区三区在线观看| 日韩精品在线观看一区二区| 日本a级片电影一区二区| 日韩大片免费观看视频播放| 日韩av理论片| 欧美国产日韩视频| 一本一本久久a久久精品综合小说| 日韩中文字幕在线| 欧美精品第一页在线播放| www.久久久久久.com| www国产精品com| 欧美乱妇高清无乱码| 成人黄色生活片| 91久久精品久久国产性色也91| 久久精品中文字幕| 欧美精品久久久久久久久| 久久大大胆人体| 日韩在线观看免费全| 亚洲国产精品久久久久秋霞蜜臀| 亚洲精品一区av在线播放| 日韩精品亚洲精品| 成人欧美在线视频| 成人免费网站在线观看| 日韩av免费看网站| 精品久久久久国产| 欧美午夜性色大片在线观看| 久久精品在线播放| 91久久在线播放| 亚洲一区二区免费在线| 日本不卡免费高清视频| 国产欧美一区二区三区在线看| 亚洲激情国产精品| 久久久电影免费观看完整版| 国产欧美精品一区二区| 91亚洲精品视频| 精品美女国产在线| 欧美激情精品久久久久久久变态| 国产精品96久久久久久又黄又硬| 精品久久久久久久久国产字幕| 日韩第一页在线| 亚洲色图国产精品| 成人激情视频在线观看| 97久久精品人搡人人玩| 日本精品久久久| 欧美激情精品久久久久久黑人| 久久久精品一区二区| 亚洲夜晚福利在线观看| 亚洲日本aⅴ片在线观看香蕉| 欧美激情视频网站| 午夜欧美大片免费观看| 大桥未久av一区二区三区|