2019年10月28日月曜日

AES暗号化

大まかな流れは
1.暗/復号器を用意
2.暗/復号器を元にストリームを作成
3.暗/復号化したいデータをストリームでやりとり

下記例はオブジェクトのシリアライズの際に書き出すデータを暗号化

            //保存するクラス(TestClass)のインスタンスを作成

            //DataContractSerializerオブジェクトを作成
            //オブジェクトの型を指定する

            DataContractSerializer serializer =
                new DataContractSerializer(typeof(Tokens));

            //BOMが付かないUTF-8で、書き込むファイルを開く

            XmlWriterSettings settings = new XmlWriterSettings();

            settings.Encoding = new System.Text.UTF8Encoding(false);


                // Encryptor(暗号化器)を用意する
            using (var am = new AesManaged())
            using (var encryptor = am.CreateEncryptor(m_key, m_iv))
            // 出力ストリームを用意する
            using (var outStream = new FileStream(strPath, FileMode.CreateNew))
            {
                // 暗号化して書き出す
                using (var cs = new CryptoStream(outStream, encryptor, CryptoStreamMode.Write))
                {
                    using (XmlWriter xw = XmlWriter.Create(cs, settings))
                    {
                        //シリアル化し、XMLファイルに保存する
                        serializer.WriteObject(xw, obj);
                    }
                }
            }


参考


0 件のコメント:

コメントを投稿