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

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Security.Cryptography;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Dome1
    {
        public class EncryptionDes
        {
            public EncryptionDes()
            {
                //
                //TODO: 在此处添加构造函数逻辑
                //
            }
    
            private string Key = "X!xO@kA)";//加密密钥必须为8位
            /// <summary>
            /// 加密算法
            /// </summary>
            /// <param name="pToEncrypt"></param>
            /// <returns></returns>
            public string Encrypt(string pToEncrypt)
            {
                if (string.IsNullOrWhiteSpace(pToEncrypt))
                    return string.Empty;
                try
                {
                    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                    byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
                    des.Key = ASCIIEncoding.ASCII.GetBytes(Key);
                    des.IV = ASCIIEncoding.ASCII.GetBytes(Key);
                    MemoryStream ms = new MemoryStream();
                    CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
                    cs.Write(inputByteArray, 0, inputByteArray.Length);
                    cs.FlushFinalBlock();
                    StringBuilder ret = new StringBuilder();
                    foreach (byte b in ms.ToArray())
                    {
                        ret.AppendFormat("{0:X2}", b);
                    }
                    ret.ToString();
                    return ret.ToString();
                }
                catch { return ""; }
    
            }
            /// <summary>
            /// 解密算法
            /// </summary>
            /// <param name="pToDecrypt"></param>
            /// <returns></returns>
            public string Decrypt(string pToDecrypt)
            {
                if (string.IsNullOrWhiteSpace(pToDecrypt))
                    return string.Empty;
                try
                {
                    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                    byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
                    for (int x = 0; x < pToDecrypt.Length / 2; x++)
                    {
                        int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
                        inputByteArray[x] = (byte)i;
                    }
                    des.Key = ASCIIEncoding.ASCII.GetBytes(Key);
                    des.IV = ASCIIEncoding.ASCII.GetBytes(Key);
                    MemoryStream ms = new MemoryStream();
                    CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
                    cs.Write(inputByteArray, 0, inputByteArray.Length);
                    cs.FlushFinalBlock();
                    StringBuilder ret = new StringBuilder();
                    return System.Text.Encoding.Default.GetString(ms.ToArray());
                }
                catch { return ""; }
            }
        }
    }
  • 相关阅读:
    java中bean和xml相互转换
    java操作zip文件
    java内置的解压缩工具
    java操作Excel简单入门
    java开发IDEA插件入门
    java中Class.getResourceAsStream()和ClassLoader.getResourceAsStream()的区别
    java中文转拼音
    vue父子组件通信
    学会使用box-sizing布局
    webpack-dev-server 导致的 invalid host header
  • 原文地址:https://www.cnblogs.com/fenger-VIP/p/7592877.html
Copyright © 2011-2022 走看看