zoukankan      html  css  js  c++  java
  • c# asp.net 字符串加密解密的类

    1. using System;   
    2. using System.Data;   
    3. using System.Configuration;   
    4. using System.Web;   
    5. using System.Web.Security;   
    6. using System.Web.UI;   
    7. using System.Web.UI.WebControls;   
    8. using System.Web.UI.WebControls.WebParts;   
    9. using System.Web.UI.HtmlControls;   
    10. using System.Security.Cryptography;   
    11. using System.IO;   
    12.   
    13. /// <summary>   
    14. /// 密码控制   
    15. /// </summary>   
    16. public class Class_Password   
    17. {   
    18.     const string KEY_64 = "VavicApp";//注意了,是8个字符,64位   
    19.   
    20.     const string IV_64 = "VavicApp";   
    21.   
    22.     public Class_Password()   
    23.     {   
    24.         //   
    25.         // TODO: 在此处添加构造函数逻辑   
    26.         //   
    27.     }  
    28.  
    29.     #region EnCode 加密   
    30.     /// <summary>   
    31.     /// EnCode 加密   
    32.     /// </summary>   
    33.     /// <param name="str">要加密的字符串</param>   
    34.     /// <returns></returns>   
    35.        
    36.     public string EnCode(string data)   
    37.     {   
    38.         byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);   
    39.         byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);   
    40.   
    41.         DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();   
    42.         int i = cryptoProvider.KeySize;   
    43.         MemoryStream ms = new MemoryStream();   
    44.         CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey,   
    45.   
    46. byIV), CryptoStreamMode.Write);   
    47.   
    48.         StreamWriter sw = new StreamWriter(cst);   
    49.         sw.Write(data);   
    50.         sw.Flush();   
    51.         cst.FlushFinalBlock();   
    52.         sw.Flush();   
    53.         return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);   
    54.     }  
    55.     #endregion  
    56.  
    57.     #region DeCode 解密   
    58.     /// <summary>   
    59.     /// DeCode 解密   
    60.     /// </summary>   
    61.     /// <param name="str">要解密的字符串</param>   
    62.     /// <returns></returns>   
    63.     public string DeCode(string data)   
    64.     {   
    65.         byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);   
    66.         byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);   
    67.   
    68.         byte[] byEnc;   
    69.         try  
    70.         {   
    71.             byEnc = Convert.FromBase64String(data);   
    72.         }   
    73.         catch  
    74.         {   
    75.             return null;   
    76.         }   
    77.   
    78.         DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();   
    79.         MemoryStream ms = new MemoryStream(byEnc);   
    80.         CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey,   
    81.   
    82. byIV), CryptoStreamMode.Read);   
    83.         StreamReader sr = new StreamReader(cst);   
    84.         return sr.ReadToEnd();   
    85.     }  
    86.     #endregion   
    87.   
    88. }  


    C#代码 复制代码
    1. using System;   
    2. using System.Collections.Generic;   
    3. using System.Text;   
    4. using System.Security.Cryptography;//Cryptography密码术   
    5. namespace DAL   
    6. {   
    7.     public class Encry   
    8.     {   
    9.         public Encry() { }  
    10.  
    11.         #region AES加密   
    12.   
    13.         public static string Encrypt(string toEncrypt)   
    14.         {   
    15.             byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678901234567890123456789012");   
    16.             byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);   
    17.   
    18.             RijndaelManaged rDel = new RijndaelManaged();//using System.Security.Cryptography;   
    19.             rDel.Key = keyArray;   
    20.             rDel.Mode = CipherMode.ECB;//using System.Security.Cryptography;   
    21.             rDel.Padding = PaddingMode.PKCS7;//using System.Security.Cryptography;   
    22.   
    23.             ICryptoTransform cTransform = rDel.CreateEncryptor();//using System.Security.Cryptography;   
    24.             byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);   
    25.   
    26.             return Convert.ToBase64String(resultArray, 0, resultArray.Length);   
    27.         }  
    28.  
    29.  
    30.  
    31.         #endregion AES加密  
    32.  
    33.  
    34.         #region AES解密   
    35.   
    36.         public static string Decrypt(string toDecrypt)   
    37.         {   
    38.             byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678901234567890123456789012");   
    39.             byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);   
    40.   
    41.             RijndaelManaged rDel = new RijndaelManaged();   
    42.             rDel.Key = keyArray;   
    43.             rDel.Mode = CipherMode.ECB;   
    44.             rDel.Padding = PaddingMode.PKCS7;   
    45.   
    46.             ICryptoTransform cTransform = rDel.CreateDecryptor();   
    47.             byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);   
    48.   
    49.             return UTF8Encoding.UTF8.GetString(resultArray);   
    50.         }  
    51.  
    52.  
    53.  
    54.         #endregion AES解密   
    55.     }   
    56. }  
  • 相关阅读:
    java基础学习总结——方法的重载(overload)
    java基础学习总结——哈希编码
    HDFS常用命令总结
    统计列表中有重复的元素
    url编解码
    python读取文件指定行内容
    python对接elasticsearch的基本操作
    爬虫速度太慢?来试试用异步协程提速吧!
    Python多线程的事件监控
    Python只有文件不存在才能写文件
  • 原文地址:https://www.cnblogs.com/jordan2009/p/1553622.html
Copyright © 2011-2022 走看看