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

        /// <summary> 
        /// DES 加解密
        /// </summary> 
        public class DES
        {
            /// <summary>
            /// DES加密,对接其他语言使用同一规则用
            /// </summary>
            /// <param name="pToEncrypt"></param>
            /// <param name="key"></param>
            /// <param name="IV"></param>
            /// <returns></returns>
            public static string EncryptString(string pToEncrypt, string key, string IV)
            {
                Byte[] keyArray = new byte[32];
                keyArray = System.Text.UTF8Encoding.UTF8.GetBytes(key);
                Byte[] ivArray = new byte[32];
                ivArray = System.Text.UTF8Encoding.UTF8.GetBytes(IV);
                Byte[] toEncryptArray = System.Text.UTF8Encoding.UTF8.GetBytes(pToEncrypt);
                System.Security.Cryptography.RijndaelManaged rDel = new System.Security.Cryptography.RijndaelManaged();
                rDel.Key = keyArray;
                rDel.IV = ivArray;
                rDel.Mode = System.Security.Cryptography.CipherMode.CBC;
                rDel.Padding = System.Security.Cryptography.PaddingMode.PKCS7;
                System.Security.Cryptography.ICryptoTransform cTransform = rDel.CreateEncryptor();
                Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
                return Convert.ToBase64String(resultArray, 0, resultArray.Length);
            }    
            /// <summary>
            /// DES加密
            /// </summary>
            /// <param name="input">待加密的字符串</param>
            /// <param name="key">加密密钥</param>
            /// <returns></returns>
            public static string Encrypt(string EncryptString, byte[] Key, byte[] IV)
            {
                //byte[] rgbKey = Encoding.UTF8.GetBytes(key.Substring(0, 8));
                byte[] inputByteArray = Encoding.UTF8.GetBytes(EncryptString);
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                MemoryStream mStream = new MemoryStream();
                CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(Key, IV), CryptoStreamMode.Write);
                cStream.Write(inputByteArray, 0, inputByteArray.Length);
                cStream.FlushFinalBlock();
                return Convert.ToBase64String(mStream.ToArray());
            }
            /// <summary>
            /// DES解密
            /// </summary>
            /// <param name="input">待解密的字符串</param>
            /// <param name="key">解密密钥,要求为8位,和加密密钥相同</param>
            /// <returns>解密成功返回解密后的字符串,失败返源串</returns>
            public static string Decrypt(string DecryptString, byte[] Key, byte[] IV)
            {
                try
                {
                    //byte[] rgbKey = Encoding.UTF8.GetBytes(Key);
                    byte[] inputByteArray = Convert.FromBase64String(DecryptString);
                    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    
                    MemoryStream mStream = new MemoryStream();
                    CryptoStream cStream = new CryptoStream(mStream, des.CreateDecryptor(Key, IV), CryptoStreamMode.Write);
                    cStream.Write(inputByteArray, 0, inputByteArray.Length);
                    cStream.FlushFinalBlock();
                    return Encoding.UTF8.GetString(mStream.ToArray());
                }
                catch
                {
                    return "";
                }
            }
        }
    

      

  • 相关阅读:
    所谓guard进程不能启动
    文件拒绝访问
    (转)Android 自定义 spinner (背景、字体颜色)
    (转)安装Android SDK时遇到Failed to rename directory
    (转)Download interrupted: Connection to https://dl-ssl.google.com refused
    安卓中Activity的onStart()和onResume()的区别是什么
    Could not find class 'org.ksoap2.serialization.SoapObject
    Android三种左右滑动效果 手势识别(转)
    The method of type must override a superclass method解决方式(转)
    MySQL插入中文时出现ERROR 1406 (22001): Data too long for column 'name' at row 1 (转)
  • 原文地址:https://www.cnblogs.com/fengyeqingxiang/p/11669755.html
Copyright © 2011-2022 走看看