Csharp/CSharp Tutorial/Security/KeyedHashAlgorithm

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

Generate the keyed hash code of the file"s contents

using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;
class MainClass
{
    public static void Main(string[] args)
    {
        byte[] key = Encoding.Unicode.GetBytes("yourKey");
        using (KeyedHashAlgorithm hashAlg = KeyedHashAlgorithm.Create("AlgorithmName"))
        {
            hashAlg.Key = key;
            using (Stream file = new FileStream("c:\\text.txt", FileMode.Open,FileAccess.Read))
            {
                byte[] hash = hashAlg.ruputeHash(file);
                // Display the keyed hash code to the console.
                Console.WriteLine(BitConverter.ToString(hash));
            }
        }
    }
}

Secret Key Cryptography: RC2

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;
      // RC2
      RC2CryptoServiceProvider rc2 = new RC2CryptoServiceProvider();
      rc2.GenerateIV();
      rc2.GenerateKey();
      FileStream fsOut_RC2 = new FileStream("outputRC2.txt", FileMode.Create, FileAccess.Write);
      CryptoStream rc2Stream = new CryptoStream( fsOut_RC2,
        rc2.CreateEncryptor(), CryptoStreamMode.Write);
      while ( rdLen < totLen )
      {
        len = fsIn.Read(bin, 0, 100);
        System.Diagnostics.Debug.WriteLine("Read " + len.ToString() + " bytes.");
        rc2Stream.Write(bin, 0, len );
        
        rdLen += len;
        Console.WriteLine("{0} Bytes Read.", rdLen );
      }
      fsIn.Close();
    }
  }