• C# RC2CryptoServiceProvider 加密


    using System;
    using System.IO;
    using System.Text;
    using System.Security.Cryptography;
    
    namespace RC2CryptoServiceProvider_Examples
    {
        class MyMainClass
        {
            public static void Main()
            {
    
                // Create a new instance of the RC2CryptoServiceProvider class
                // and automatically generate a Key and IV.
                RC2CryptoServiceProvider rc2CSP = new RC2CryptoServiceProvider();
    
                Console.WriteLine("Effective key size is {0} bits.", rc2CSP.EffectiveKeySize);
    
                // Get the key and IV.
                byte[] key = rc2CSP.Key;
                byte[] IV = rc2CSP.IV;
    
                // Get an encryptor.
                ICryptoTransform encryptor = rc2CSP.CreateEncryptor(key, IV);
    
                // Encrypt the data as an array of encrypted bytes in memory.
                MemoryStream msEncrypt = new MemoryStream();
                CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write);
    
                // Convert the data to a byte array.
                string original = "Here is some data to encrypt.";
                byte[] toEncrypt = Encoding.ASCII.GetBytes(original);
    
                // Write all data to the crypto stream and flush it.
                csEncrypt.Write(toEncrypt, 0, toEncrypt.Length);
                csEncrypt.FlushFinalBlock();
    
                // Get the encrypted array of bytes.
                byte[] encrypted = msEncrypt.ToArray();
    
                ///////////////////////////////////////////////////////
                // This is where the data could be transmitted or saved.          
                ///////////////////////////////////////////////////////
    
                //Get a decryptor that uses the same key and IV as the encryptor.
                ICryptoTransform decryptor = rc2CSP.CreateDecryptor(key, IV);
    
                // Now decrypt the previously encrypted message using the decryptor
                // obtained in the above step.
                MemoryStream msDecrypt = new MemoryStream(encrypted);
                CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read);
    
                // Read the decrypted bytes from the decrypting stream
                // and place them in a StringBuilder class.
    
                StringBuilder roundtrip = new StringBuilder();
                
                int b = 0;
    
                do
                {
                    b = csDecrypt.ReadByte();
                    
                    if (b != -1)
                    {
                        roundtrip.Append((char)b);
                    }
                } while (b != -1);
    
                // Display the original data and the decrypted data.
                Console.WriteLine("Original:   {0}", original);
                Console.WriteLine("Round Trip: {0}", roundtrip);
    
                Console.ReadLine();
            }
        }
    }
  • 相关阅读:
    Random简介
    十道海量数据处理面试题
    Django models 的字段类型
    执行monkey APK 制作
    MTK平台-抓取蓝牙log
    超级硬件代理解决企业Web提速上网问题
    Red Hat Linux 安装 (本地、网络安装)
    由安装两块网卡的linux系统中引起网络不通想到的
    Linux企业应用--RHAS 2.1 下安装中文 Lotus Domino R 6.5 图解
    巧用Linux 架设TFTP Server备份路由器的配置文件
  • 原文地址:https://www.cnblogs.com/wfy680/p/14296767.html
Copyright © 2020-2023  润新知