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
  • 相关阅读:
    Stm32CubeMX5 配置 STM32的串口DMA接受方式 --- 基于 stm32f051k8u6
    Stm32 控制1.44寸液晶显示图片 基于stm32f051k8u6
    makefile自动编译
    Stm32CubeMX5 创建LED控制工程
    ARM 汇编与C之间 的调用
    shell 脚本文件类型.sh ,变量
    bzoj3589 动态树 求链并 容斥
    bzoj2287【POJ Challenge】消失之物 缺一01背包
    bzoj2916: [Poi1997]Monochromatic Triangles 思路
    [NOI2010]超级钢琴 主席树
  • 原文地址:https://www.cnblogs.com/xachary/p/3924815.html
Copyright © 2011-2022 走看看