Csharp/CSharp Tutorial/Security/DES — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Версия 15:31, 26 мая 2010

Secret Key Cryptography: DES

using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;
  class Class1
  {
    static void Main(string[] args)
    {
      byte[] bin = new byte[100]; 
      FileStream fsIn = new FileStream("input.txt", FileMode.Open, FileAccess.Read);
      long rdLen = 0;
      long totLen = fsIn.Length;
      int len;
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
      des.GenerateKey();
      des.GenerateIV();
      FileStream fsOut_DES = new FileStream("outputDES.txt", FileMode.Create, FileAccess.Write);
      CryptoStream desStream = new CryptoStream( fsOut_DES, 
        des.CreateEncryptor( des.Key, des.IV ), CryptoStreamMode.Write);
      while ( rdLen < totLen )
      {
        len = fsIn.Read(bin, 0, 100);
        System.Diagnostics.Debug.WriteLine("Read " + len.ToString() + " bytes.");
        desStream.Write(bin, 0, len );
        
        rdLen += len;
        Console.WriteLine("{0} Bytes Read.", rdLen );
      }
      desStream.Close();
      fsOut_DES.Close();
      fsIn.Close();
    }
  }

Secret Key Cryptography: TripleDES

using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;
class Class1
{
    static void Main(string[] args)
    {
        byte[] bin = new byte[100]; // 100 byte buffer
        FileStream fsIn = new FileStream("input.txt", FileMode.Open, FileAccess.Read);
        long rdLen = 0;
        long totLen = fsIn.Length;
        int len;
        // TripleDES
        TripleDESCryptoServiceProvider tripleDes = new TripleDESCryptoServiceProvider();
        tripleDes.GenerateIV();
        tripleDes.GenerateKey();
        FileStream fsOut_3Des = new FileStream("output3DES.txt", FileMode.Create, FileAccess.Write);
        CryptoStream tripleStream = new CryptoStream(fsOut_3Des, tripleDes.CreateEncryptor(), CryptoStreamMode.Write);
        while (rdLen < totLen)
        {
            len = fsIn.Read(bin, 0, 100);
            System.Diagnostics.Debug.WriteLine("Read " + len.ToString() + " bytes.");
            tripleStream.Write(bin, 0, len);
            rdLen += len;
            Console.WriteLine("{0} Bytes Read.", rdLen);
        }
        fsIn.Close();
    }
}