zoukankan      html  css  js  c++  java
  • 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 ""; }
    }

    }
    }

  • 相关阅读:
    Git常用命令总结
    JavaScript单元测试框架JsUnit基本介绍和使用
    Android Home键监听
    ASP.NET Core on K8S深入学习(3-2)DaemonSet与Job
    你必须知道的Dockerfile
    你必须知道的Docker数据卷(Volume)
    《人人都是产品经理》读书笔记
    ASP.NET Core on K8S深入学习(3-1)Deployment
    ASP.NET Core on K8S深入学习(2)部署过程解析与Dashboard
    .NET Core on K8S学习与实践系列文章 (2020版)
  • 原文地址:https://www.cnblogs.com/louby/p/5212508.html
Copyright © 2011-2022 走看看