• C# 常用加密方式


    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Security.Cryptography;
    using System.IO;

    namespace TRSLMS.Website.Common
    {
    /// <summary>
    /// MD5加密
    /// </summary>
    public class Encrypt
    {
    private static MD5 md5 = MD5.Create();
    //私有化构造函数
    private Encrypt() { }
    /// <summary>
    /// 使用utf8编码将字符串散列
    /// </summary>
    /// <param name="sourceString">加密字符串</param>
    /// <returns>返回加密后字符串不可解</returns>
    public static string SetEncryptMD5(string sourceString)
    {
    try
    {
    byte[] source = md5.ComputeHash(Encoding.UTF8.GetBytes(sourceString));
    StringBuilder sBuilder = new StringBuilder();
    for (int i = 0; i < source.Length; i++)
    {
    sBuilder.Append(source[i].ToString("x2"));
    }
    return sBuilder.ToString();
    }
    catch (Exception)
    {
    return "";
    }
    }

    //**********************************************************************
    //注意了,是8个字符,64位
    const string KEY_64 = "Loubyuan";
    const string IV_64 = "19920923";
    /// <summary>
    /// DES加密方式
    /// </summary>
    /// <param name="sourceString">加密字符串</param>
    /// <returns>加密后字符串</returns>
    public static string SetEncryptDES(string sourceString)
    {
    try
    {
    byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
    byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
    DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
    int i = cryptoProvider.KeySize;
    MemoryStream ms = new MemoryStream();
    CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);
    StreamWriter sw = new StreamWriter(cst);
    sw.Write(sourceString);
    sw.Flush();
    cst.FlushFinalBlock();
    sw.Flush();
    return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
    }
    catch { return ""; }
    }


    /// <summary>
    /// DES解密
    /// </summary>
    /// <param name="sourceString">解密字符串</param>
    /// <returns>解密后字符串</returns>
    public static string GetDecryptDES(string sourceString)
    {
    try
    {
    byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
    byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
    byte[] byEnc = Convert.FromBase64String(sourceString);
    DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
    MemoryStream ms = new MemoryStream(byEnc);
    CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);
    StreamReader sr = new StreamReader(cst);
    return sr.ReadToEnd();
    }
    catch { return ""; }
    }

    //**********************************************************************
    static byte[] keyArray = UTF8Encoding.UTF8.GetBytes("be4L4D5d0ff2djm2fpqmvy8flahbde4h");

    /// <summary>
    /// AES 加密方式
    /// </summary>
    /// <param name="sourceString">加密字符串</param>
    /// <returns>加密后字符串</returns>
    public static string SetEncryptAES(string sourceString)
    {
    try
    {
    byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(sourceString);
    RijndaelManaged rDel = new RijndaelManaged();
    rDel.Key = keyArray;
    rDel.Mode = CipherMode.ECB;
    rDel.Padding = PaddingMode.PKCS7;
    ICryptoTransform cTransform = rDel.CreateEncryptor();
    byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
    return Convert.ToBase64String(resultArray, 0, resultArray.Length);
    }
    catch { return ""; }
    }

    /// <summary>
    /// AES解密
    /// </summary>
    /// <param name="sourceString">解密字符串</param>
    /// <returns>解密后字符串</returns>
    public static string GetDecryptAES(string sourceString)
    {
    try
    {
    byte[] toEncryptArray = Convert.FromBase64String(sourceString);
    RijndaelManaged rDel = new RijndaelManaged();
    rDel.Key = keyArray;
    rDel.Mode = CipherMode.ECB;
    rDel.Padding = PaddingMode.PKCS7;
    ICryptoTransform cTransform = rDel.CreateDecryptor();
    byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
    return UTF8Encoding.UTF8.GetString(resultArray);
    }
    catch { return ""; }
    }

    }
    }

  • 相关阅读:
    Spring学习笔记(一)IoC(XML部分)
    近期计划
    《番茄工作法图解》读后笔记
    第一篇随笔
    JavaScript 基本语法
    Eclipse启动之四 : Eclipse核心框架启动(百度空间迁移)
    Eclipse启动之三 : 启动器插件(百度空间迁移)
    Eclipse启动之二:Eclipse动态库(百度空间迁移)
    Eclipse启动之一:外壳程序(百度空间迁移)
    04SQL 查询当天,本月,本周的记录
  • 原文地址:https://www.cnblogs.com/louby/p/5212508.html
Copyright © 2020-2023  润新知