利用StreamWrite流和StreamRead流通过RijndaelManaged对称加密算法

利用StreamWrite流和StreamRead流通过RijndaelManaged对称加密算法外加CryptoStream流来实现把文本读入的流转换为加密流以便传输或保存。

源代码如下:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.IO;
using System.Security.Cryptography;
namespace CryptoGraphyConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            RijndaelManaged rm=new RijndaelManaged();
            rm.GenerateKey();
            rm.GenerateIV();
            CreateFile();
            Encode(rm);
            Decode(rm);
            ReadFormEncodeFile();
            Console.ReadLine();
        }

        private static void ReadFormEncodeFile()
        {
            FileStream fs = new FileStream("encoded.txt", FileMode.Open);
            BufferedStream bs = new BufferedStream(fs);
            StreamReader sr = new StreamReader(bs);
            string outStr = "";
            while ((outStr = sr.ReadLine()) != null)
            {
                Console.WriteLine(outStr);
            }
        }

        private static void Decode(RijndaelManaged rm)
        {
            FileStream fs = new FileStream("encoded.txt", FileMode.Open);
            ICryptoTransform decoder = rm.CreateDecryptor();
            CryptoStream cs = new CryptoStream(fs, decoder, CryptoStreamMode.Read);
            int i = 0;
            while ((i = cs.ReadByte()) != -1)
            {
                Console.Write((char)i);
            }
            cs.Close();
        }

        private static void Encode(RijndaelManaged rm)
        {
            FileStream fs = new FileStream("test.txt", FileMode.Open);
            ICryptoTransform encoder = rm.CreateEncryptor();
            CryptoStream cs = new CryptoStream(fs, encoder, CryptoStreamMode.Read);
            FileStream outfile = new FileStream("encoded.txt", FileMode.Create);
            int i = 0;
            while ((i = cs.ReadByte()) != -1)
            {
                outfile.WriteByte((byte)i);
            }
            cs.Close();
            outfile.Close();
        }
        private static void CreateFile()
        {
            FileStream fs = new FileStream("test.txt", FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine("1232456786");
            sw.WriteLine("dsfaghjytukilo");
            sw.Close();
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值