zoukankan      html  css  js  c++  java
  • 加解密1-流

    加密:

     1         /// <summary>
     2         /// 使用指定的加密算法加密流
     3         /// </summary>
     4         /// <param name="inStream"></param>
     5         /// <param name="provider"></param>
     6         /// <returns>加密后的流</returns>
     7         public static Stream GetEncryptedStream(Stream inStream, SymmetricAlgorithm provider) 
     8         {
     9             MemoryStream outStream = new MemoryStream();
    10             //以加密方式写入到outStream
    11             CryptoStream encryptStream = new CryptoStream(outStream, provider.CreateEncryptor(), CryptoStreamMode.Write);
    12 
    13             int numBytes;
    14             byte[] inputBytes = new byte[1024];
    15             while ((numBytes = inStream.Read(inputBytes, 0, inputBytes.Length)) != 0)
    16             {
    17                 encryptStream.Write(inputBytes, 0, numBytes);
    18             }
    19             encryptStream.FlushFinalBlock();
    20 
    21             //回到输出的流的起点
    22             outStream.Position = 0;
    23 
    24             //加密后的数据
    25             return outStream;
    26         }
    27 
    28 
    29        /// <summary>
    30         /// 使用指定的加密算法加密流
    31         /// </summary>
    32         /// <param name="inStream"></param>
    33         /// <param name="provider"></param>
    34         /// <returns>加密后的流</returns>
    35         public static Stream GetEncryptedStream(Stream inStream, SymmetricAlgorithm provider) 
    36         {
    37             MemoryStream outStream = new MemoryStream();
    38             //以加密方式读取inStream
    39             CryptoStream encryptStream = new CryptoStream(inStream, provider.CreateEncryptor(), CryptoStreamMode.Read);
    40 
    41             int numBytes;
    42             byte[] inputBytes = new byte[1024];
    43             while ((numBytes = encryptStream.Read(inputBytes, 0, inputBytes.Length)) != 0)
    44             {
    45                 outStream.Write(inputBytes, 0, numBytes);
    46             }
    47             //回到输出的流的起点
    48             outStream.Position = 0;
    49 
    50             //加密后的数据
    51             return outStream;
    52         }

    解密:

     1         /// <summary>
     2         /// 使用指定的算法提供器解密流
     3         /// </summary>
     4         /// <param name="inStream"></param>
     5         /// <param name="provider"></param>
     6         /// <returns>解密后的流</returns>
     7         public static Stream GetDecryptedStream(Stream inStream,SymmetricAlgorithm provider)
     8         {
     9             MemoryStream outStream = new MemoryStream();
    10             //以解密方式读取inStream
    11             CryptoStream decryptStream = new CryptoStream(inStream, provider.CreateDecryptor(), CryptoStreamMode.Read);
    12             
    13             int numBytes;
    14             byte[] inputBytes = new byte[_bufferSize];
    15             while ((numBytes = decryptStream.Read(inputBytes,0,inputBytes.Length)) !=0)
    16             {
    17                 outStream.Write(inputBytes, 0, numBytes);
    18             }
    19 
    20             //回到输出的流的起点
    21             outStream.Position = 0;
    22 
    23             return outStream;
    24         }
    25 
    26         /// <summary>
    27         /// 使用指定的算法提供器解密流
    28         /// </summary>
    29         /// <param name="inStream"></param>
    30         /// <param name="provider"></param>
    31         /// <returns>解密后的流</returns>
    32         public static Stream GetDecryptedStream(Stream inStream,SymmetricAlgorithm provider)
    33         {
    34             MemoryStream outStream = new MemoryStream();
    35             //以解密方式写入outStream 
    36             CryptoStream decryptStream = new CryptoStream(outStream , provider.CreateDecryptor(), CryptoStreamMode.Write);
    37             
    38             int numBytes;
    39             byte[] inputBytes = new byte[_bufferSize];
    40             while ((numBytes = inStream.Read(inputBytes,0,inputBytes.Length)) !=0)
    41             {
    42                 decryptStream.Write(inputBytes, 0, numBytes);
    43             }
    44             decryptStream.FlushFinalBlock();
    45             //回到输出的流的起点
    46             outStream.Position = 0;
    47 
    48             return outStream;
    49         }    
  • 相关阅读:
    asp.net点击按钮下载图片而不是打开图片
    在事务中调用WebService一定程度上实现数据同步
    C#自定义Attribute的定义和获取简例
    开发ASP.NET下的MP3小偷程序
    Ajax 中XmlHttp 乱码 的解决方法 (UTF8,GB2312 编码 解码)
    MasterPage 类
    怎样成为优秀的软件测试员
    标准日本语动词大全
    什么是WSDL?
    ASP.NET程序中常用的三十三种代码
  • 原文地址:https://www.cnblogs.com/shenshiting/p/7804108.html
Copyright © 2011-2022 走看看