DES加密/解密类。

摘要:
用法:strings=DESEncrypt。加密//加密s=DESEncrypt。Decrypt//Decrypt//<summary>///DES加密/解密类。

用法:

string s = DESEncrypt.Encrypt("123456");//加密

s = DESEncrypt.Decrypt(s);//解密

/// <summary>
    /// DES加密/解密类。
    /// </summary>
    public class DESEncrypt
    {
        public const string KEY = "aaaaaaaaaa";
        public DESEncrypt()
        {            
        }

        #region ========加密======== 
 
        /// <summary>
        /// 加密
        /// </summary>
        /// <param name="Text"></param>
        /// <returns></returns>
        public static string Encrypt(string Text) 
        {
            return Encrypt(Text, KEY);
        }
        /// <summary> 
        /// 加密数据 
        /// </summary> 
        /// <param name="Text"></param> 
        /// <param name="sKey"></param> 
        /// <returns></returns> 
        public static string Encrypt(string Text,string sKey) 
        { 
            DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 
            byte[] inputByteArray; 
            inputByteArray=Encoding.Default.GetBytes(Text); 
            des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); 
            des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); 
            System.IO.MemoryStream ms=new System.IO.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); 
            } 
            return ret.ToString(); 
        } 

        #endregion
        
        #region ========解密======== 
   
 
        /// <summary>
        /// 解密
        /// </summary>
        /// <param name="Text"></param>
        /// <returns></returns>
        public static string Decrypt(string Text) 
        {
            return Decrypt(Text, KEY);
        }
        /// <summary> 
        /// 解密数据 
        /// </summary> 
        /// <param name="Text"></param> 
        /// <param name="sKey"></param> 
        /// <returns></returns> 
        public static string Decrypt(string Text,string sKey) 
        { 
            DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 
            int len; 
            len=Text.Length/2; 
            byte[] inputByteArray = new byte[len]; 
            int x,i; 
            for(x=0;x<len;x++) 
            { 
                i = Convert.ToInt32(Text.Substring(x * 2, 2), 16); 
                inputByteArray[x]=(byte)i; 
            } 
            des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); 
            des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); 
            System.IO.MemoryStream ms=new System.IO.MemoryStream(); 
            CryptoStream cs=new CryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write); 
            cs.Write(inputByteArray,0,inputByteArray.Length); 
            cs.FlushFinalBlock(); 
            return Encoding.Default.GetString(ms.ToArray()); 
        } 
 
        #endregion 


    }

免责声明:文章转载自《DES加密/解密类。》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux环境下 C++性能测试工具 gprof + kprof + gprof2dot友盟官方文档下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

DES加密

DES算法描述过程: 1.DES算法使用56位的密钥及附加的8位奇偶校验位,产生最大64位的分组大小,输入64位明文,在64位密钥的控制下产生64位的密文。 2.DES首先利用初始置换IP对X进行换位处理,然后用图3.5的与密钥有关的16轮迭代变换,如此循环16此,最后经过逆初始置换IP-1的处理得到密文 初始置换IP用于对明文各位进行换位,为了打乱次序...

C# DES_AES_MD5_加密_解密

一、DES加解密  DES一共就有4个参数参与运作:明文、密文、密钥、向量。其中这4者的关系可以理解为:   密文=明文+密钥+向量;   明文=密文-密钥-向量;   为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复,那么这个词加上密钥形成的密文,仍然会重复,这给破解者有机可乘,破解者可以根据重复的内容,猜出是什么词,然而一旦猜对这个词,那么...

DES加密ECB(模式) golang

Java默认DES算法使用DES/ECB/PKCS5Padding,而golang认为这种方式是不安全的,所以故意没有提供这种加密方式,那如果我们还是要用到怎么办?下面贴上golang版的DES ECB加密解密代码(默认对密文做了base64处理)。 package main import ( log "ad-service/alog"...

uni-app使用DES加密解密数据

1 uni-app操作 (1) 打开HBuilderX的视图->显示终端   cd 切换到你项目的根目录   执行命令 npm install crypto-js 安装成功后你的项目根目录会生成node_modules文件夹,里面有crypto-js就说明成功了 (2)接下来在哪使用就直接import CryptoJS from './node_m...

ruby中rsa加密加签以及md5、hash加密以及des加解密方法整理

#RSA公钥加密,加签;des 不同加密算法的加密解密方法 # encoding:utf-8# author:anionrequire 'openssl'require 'base64'require 'digest' #一 rsa加签 base64编码  def rsa_sign data, key  rkey =OpenSSL::PKey::RSA.n...

常见的加密方式总结

对称加密 DES DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法,加密速度快,但是容易破解安全性低。 3DES(Triple DES) 是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高,加强版DES。 (DES算法比较简单,容易破解已不建议使用) AES(微信用的就是这种加密方式)...