zoukankan      html  css  js  c++  java
  • C# DES 加密解密

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Security.Cryptography;
    using System.IO;
    
    namespace MTR.Library.CommonHelper
    {
        public class DESEncryptHelper
        {
            /// <summary>
            /// Encrypt string
            /// </summary>
            /// <param name="value">The string which to be encrypted.</param>
            /// <returns>The value after being encrypted.</returns>
            public static string Encrypt(string value)
            {
                return Encrypt(value, System.Configuration.ConfigurationManager.AppSettings["pwd"]);
            }
    
            /// <summary>
            /// Encrypt string
            /// </summary>
            /// <param name="value">The string which to be encrypted.</param>
            /// <param name="password">The password.</param>
            /// <returns>The value after being encrypted.</returns>
            public static string Encrypt(string value, string password)
            {
                try
                {
                    byte[] rgbKey = Encoding.UTF8.GetBytes(password.Substring(0, 8));
                    byte[] rgbIV = Encoding.UTF8.GetBytes(password.Substring(0, 8));
                    byte[] inputByteArray = Encoding.UTF8.GetBytes(value);
                    using (DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider())
                    {
                        using (MemoryStream mStream = new MemoryStream())
                        {
                            CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                            cStream.Write(inputByteArray, 0, inputByteArray.Length);
                            cStream.FlushFinalBlock();
                            return Convert.ToBase64String(mStream.ToArray());
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception("Error when encrypting data", ex);
                }
            }
    
            /// <summary>
            /// Decrypt string
            /// </summary>
            /// <param name="value">The string which to be decrypted.</param>
            /// <returns>The value after being decrypted.</returns>
            public static string Decrypt(string value)
            {
                return Decrypt(value, System.Configuration.ConfigurationManager.AppSettings["pwd"]);
            }
    
            /// <summary>
            /// Decrypt string
            /// </summary>
            /// <param name="value">The string which to be decrypted.</param>
            /// <param name="password">The password.</param>
            /// <returns>The value after being decrypted.</returns>
            public static string Decrypt(string value, string password)
            {
                try
                {
                    byte[] rgbKey = Encoding.UTF8.GetBytes(password.Substring(0, 8));
                    byte[] rgbIV = Encoding.UTF8.GetBytes(password.Substring(0, 8));
                    byte[] inputByteArray = Convert.FromBase64String(value);
                    using (DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider())
                    {
                        using (MemoryStream mStream = new MemoryStream())
                        {
                            CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                            cStream.Write(inputByteArray, 0, inputByteArray.Length);
                            cStream.FlushFinalBlock();
                            return Encoding.UTF8.GetString(mStream.ToArray());
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception("Error when decrypting data", ex);
                }
            }
        }
    }
    View Code
  • 相关阅读:
    闭包
    递归 斐波那契
    作用域,函数的四种调用模式
    数组方法
    Math内置对象
    BeanUtils.copyProperties() 用法
    ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("Id",getId())防止内存泄漏
    Spring配置文件applicationContext.xml Hibernate SQL方言 (hibernate.dialect)
    Redis面试总结
    Nginx面试题
  • 原文地址:https://www.cnblogs.com/xachary/p/3924815.html
Copyright © 2011-2022 走看看