本人刚接触 加密  不懂得怎么去处理,加密的方法有很多种我一下看不懂,情哥哥姐姐们教我一下,怎样加密数据(如果详细的带吗更好) 谢谢!!!!

解决方案 »

  1.   

    .net有md5,des,sha,rsa等加密方法
    加密解密
      

  2.   

    using System;
    using System.Text;
    using System.Security.Cryptography;
    using System.IO;namespace MyCryptography
    {
        /// <summary>
        /// DES加密解密
        /// </summary>
        public class DES
        {
            /// <summary>
            /// 获取密钥
            /// </summary>
            private static string Key
            {
                get { return @"P@+#wG+Z"; }
            }        /// <summary>
            /// 获取向量
            /// </summary>
            private static string IV
            {
                get { return @"L%n67}G\Mk@k%:~Y"; }
            }        /// <summary>
            /// DES加密
            /// </summary>
            /// <param name="plainStr">明文字符串</param>
            /// <returns>密文</returns>
            public static string DESEncrypt(string plainStr)
            {
                byte[] bKey = Encoding.UTF8.GetBytes(Key);
                byte[] bIV = Encoding.UTF8.GetBytes(IV);
                byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);
                string encrypt = null;
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                try
                {
                    using (MemoryStream mStream = new MemoryStream())
                    {
                        using (CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))
                        {
                            cStream.Write(byteArray, 0, byteArray.Length);
                            cStream.FlushFinalBlock();
                            encrypt = Convert.ToBase64String(mStream.ToArray());
                        }
                    }
                }
                catch { }
                des.Clear();
                return encrypt;
            }        /// <summary>
            /// DES解密
            /// </summary>
            /// <param name="encryptStr">密文字符串</param>
            /// <returns>明文</returns>
            public static string DESDecrypt(string encryptStr)
            {
                byte[] bKey = Encoding.UTF8.GetBytes(Key);
                byte[] bIV = Encoding.UTF8.GetBytes(IV);
                byte[] byteArray = Convert.FromBase64String(encryptStr);
                string decrypt = null;
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                try
                {
                    using (MemoryStream mStream = new MemoryStream())
                    {
                        using (CryptoStream cStream = new CryptoStream(mStream, des.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))
                        {
                            cStream.Write(byteArray, 0, byteArray.Length);
                            cStream.FlushFinalBlock();
                            decrypt = Encoding.UTF8.GetString(mStream.ToArray());
                        }
                    }
                }
                catch { }
                des.Clear();            return decrypt;
            }        public static void Main(String []args)
            {
                string sb,sa,sd;
                DES d=new DES();
                Console.WriteLine("请输入需要加密的字符串");
                sb = Console.ReadLine();
                sa = DES.DESEncrypt(sb);
                Console.WriteLine("加密后的字符为"+sa);
                sd = DES.DESDecrypt(sa);
                Console.WriteLine("解密后的字符为"+sd);
            }    }    /// <summary>pu
        /// AES加密解密
        /// </summary>
        public class AES
        {
            /// <summary>
            /// 获取密钥
            /// </summary>
            private static string Key
            {
                get { return @")O[NB]6,YF}+efcaj{+oESb9d8>Z'e9M"; }
            }        /// <summary>
            /// 获取向量
            /// </summary>
            private static string IV
            {
                get { return @"L+\~f4,Ir)b$=pkf"; }
            }        /// <summary>
            /// AES加密
            /// </summary>
            /// <param name="plainStr">明文字符串</param>
            /// <returns>密文</returns>
            public static string AESEncrypt(string plainStr)
            {
                byte[] bKey = Encoding.UTF8.GetBytes(Key);
                byte[] bIV = Encoding.UTF8.GetBytes(IV);
                byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);            string encrypt = null;
                Rijndael aes = Rijndael.Create();
                try
                {
                    using (MemoryStream mStream = new MemoryStream())
                    {
                        using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))
                        {
                            cStream.Write(byteArray, 0, byteArray.Length);
                            cStream.FlushFinalBlock();
                            encrypt = Convert.ToBase64String(mStream.ToArray());
                        }
                    }
                }
                catch { }
                aes.Clear();            return encrypt;
            }        /// <summary>
            /// AES加密
            /// </summary>
            /// <param name="plainStr">明文字符串</param>
            /// <param name="returnNull">加密失败时是否返回 null,false 返回 String.Empty</param>
            /// <returns>密文</returns>
            public static string AESEncrypt(string plainStr, bool returnNull)
            {
                string encrypt = AESEncrypt(plainStr);
                return returnNull ? encrypt : (encrypt == null ? String.Empty : encrypt);
            }        /// <summary>
            /// AES解密
            /// </summary>
            /// <param name="encryptStr">密文字符串</param>
            /// <returns>明文</returns>
            public static string AESDecrypt(string encryptStr)
            {
                byte[] bKey = Encoding.UTF8.GetBytes(Key);
                byte[] bIV = Encoding.UTF8.GetBytes(IV);
                byte[] byteArray = Convert.FromBase64String(encryptStr);            string decrypt = null;
                Rijndael aes = Rijndael.Create();
                try
                {
                    using (MemoryStream mStream = new MemoryStream())
                    {
                        using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))
                        {
                            cStream.Write(byteArray, 0, byteArray.Length);
                            cStream.FlushFinalBlock();
                            decrypt = Encoding.UTF8.GetString(mStream.ToArray());
                        }
                    }
                }
                catch { }
                aes.Clear();            return decrypt;
            }        /// <summary>
            /// AES解密
            /// </summary>
            /// <param name="encryptStr">密文字符串</param>
            /// <param name="returnNull">解密失败时是否返回 null,false 返回 String.Empty</param>
            /// <returns>明文</returns>
            public static string AESDecrypt(string encryptStr, bool returnNull)
            {
                string decrypt = AESDecrypt(encryptStr);
                return returnNull ? decrypt : (decrypt == null ? String.Empty : decrypt);
            }
        }}
    http://topic.csdn.net/u/20100527/16/789d8315-5e7d-4f1b-a8aa-d447864d4c63.html这里我也贴了一个
      

  3.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Globalization;
    using System.Security.Cryptography;
    ///数据的加密与解密空间
    namespace CSharpDesign.ClassLibrary.Data.EncryptionDecryption
    {
        /// <summary>
        /// 加密解密类
        /// </summary>
        public class EncryptionDecryption
        {
            /// <summary>
            /// 加密字符串
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public static string Encode(string str)
            {
                string htext = ""; // blank text            for (int i = 0; i < str.Length; i++)
                {
                    htext = htext + (char)(str[i] + 10 - 1 * 2);
                }
                return htext;
            }
            /// <summary>
            /// 解密字符串
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public static string Decode(string str)
            {
                string dtext = "";            for (int i = 0; i < str.Length; i++)
                {
                    dtext = dtext + (char)(str[i] - 10 + 1 * 2);
                }
                return dtext;
            }
        }
        /// <summary>
        /// 加密解密器
        /// </summary>
        public class EncryptorDecryptor
        {
            /// <summary>
            /// 使用缺省密钥字符串加密
            /// </summary>
            /// <param name="original">明文</param>
            /// <returns>密文</returns>
            public static string Encrypt(string original)
            {
                return Encrypt(original, "JASONHEUNG");
            }
            /// <summary>
            /// 使用缺省密钥解密
            /// </summary>
            /// <param name="original">密文</param>
            /// <returns>明文</returns>
            public static string Decrypt(string original)
            {
                return Decrypt(original, "JASONHEUNG", System.Text.Encoding.Default);
            }
            /// <summary>
            /// 使用给定密钥加密
            /// </summary>
            /// <param name="original">原始文字</param>
            /// <param name="key">密钥</param>
            /// <param name="encoding">字符编码方案</param>
            /// <returns>密文</returns>
            public static string Encrypt(string original, string key)
            {
                byte[] buff = System.Text.Encoding.Default.GetBytes(original);
                byte[] kb = System.Text.Encoding.Default.GetBytes(key);
                return Convert.ToBase64String(Encrypt(buff, kb));
            }
            /// <summary>
            /// 使用给定密钥解密
            /// </summary>
            /// <param name="original">密文</param>
            /// <param name="key">密钥</param>
            /// <returns>明文</returns>
            public static string Decrypt(string original, string key)
            {
                return Decrypt(original, key, System.Text.Encoding.Default);
            }        /// <summary>
            /// 使用缺省密钥解密,返回指定编码方式明文
            /// </summary>
            /// <param name="original">密文</param>
            /// <param name="encoding">编码方式</param>
            /// <returns>明文</returns>
            public static string Decrypt(string original, Encoding encoding)
            {            return Decrypt(original, "JASONHEUNG", encoding);
            }        /// <summary>
            /// 使用给定密钥解密
            /// </summary>
            /// <param name="encrypted">密文</param>
            /// <param name="key">密钥</param>
            /// <param name="encoding">字符编码方案</param>
            /// <returns>明文</returns>
            public static string Decrypt(string encrypted, string key, Encoding encoding)
            {
                byte[] buff = Convert.FromBase64String(encrypted);
                byte[] kb = System.Text.Encoding.Default.GetBytes(key);
                return encoding.GetString(Decrypt(buff, kb));
            }
            /// <summary>
            /// 生成MD5摘要
            /// </summary>
            /// <param name="original">数据源</param>
            /// <returns>摘要</returns>
            public static byte[] MakeMD5(byte[] original)
            {
                MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
                byte[] keyhash = hashmd5.ComputeHash(original);
                hashmd5 = null;
                return keyhash;
            }
            /// <summary>
            /// 使用给定密钥加密
            /// </summary>
            /// <param name="original">明文</param>
            /// <param name="key">密钥</param>
            /// <returns>密文</returns>
            public static byte[] Encrypt(byte[] original, byte[] key)
            {
                TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
                des.Key = MakeMD5(key);
                des.Mode = CipherMode.ECB;            return des.CreateEncryptor().TransformFinalBlock(original, 0, original.Length);
            }
            /// <summary>
            /// 使用给定密钥解密数据
            /// </summary>
            /// <param name="encrypted">密文</param>
            /// <param name="key">密钥</param>
            /// <returns>明文</returns>
            public static byte[] Decrypt(byte[] encrypted, byte[] key)
            {
                TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
                des.Key = MakeMD5(key);
                des.Mode = CipherMode.ECB;
                return des.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length);
            }
            /// <summary>
            /// 使用给定密钥加密
            /// </summary>
            /// <param name="original">原始数据</param>
            /// <param name="key">密钥</param>
            /// <returns>密文</returns>
            public static byte[] Encrypt(byte[] original)
            {
                byte[] key = System.Text.Encoding.Default.GetBytes("JASONHEUNG");
                return Encrypt(original, key);
            }
            /// <summary>
            /// 使用缺省密钥解密数据
            /// </summary>
            /// <param name="encrypted">密文</param>
            /// <param name="key">密钥</param>
            /// <returns>明文</returns>
            public static byte[] Decrypt(byte[] encrypted)
            {
                byte[] key = System.Text.Encoding.Default.GetBytes("JASONHEUNG");
                return Decrypt(encrypted, key);
            }
        }
      

  4.   

     加密的算法很多。看你的选择了。
    md5,des,sha,rsa 各有好处。不过我建议你使用RC2
    RC2加密算法要快些。
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Security.Cryptography;
    using System.IO;namespace WindowsApplication32
    {
        class RC2
        {
            private string localKey = "dddddddd";//8位密文
            private byte[] IV ={ 0x94, 0x93, 0x92, 0x91, 0x90, 0x89, 0x88, 0x87 }; //8个16进制,向量    
            RC2CryptoServiceProvider DS = new RC2CryptoServiceProvider();
            public RC2()
            {
            }
            public RC2(string KEY)
            {
                localKey = KEY;
            }
            /// <summary>
            /// 加密算法
            /// </summary>
            /// <param name="text">加密文本</param>
            /// <returns></returns>
            public string jiami(string text)
            {
                MemoryStream ms = new MemoryStream();
                byte[] key = Encoding.UTF8.GetBytes(localKey);
                ICryptoTransform transform = DS.CreateEncryptor(key, IV);
                CryptoStream encstream = new CryptoStream(ms, transform, CryptoStreamMode.Write);
                byte[] buffer = Encoding.UTF8.GetBytes(text); //加密明文时用Encoding.UTF8.
                encstream.Write(buffer, 0, buffer.Length);
                encstream.FlushFinalBlock();
                ms.Close();
                encstream.Clear();
                return Convert.ToBase64String(ms.ToArray());        }
            /// <summary>
            /// 解密算法
            /// </summary>
            /// <param name="text">解密wenbe</param>
            /// <returns></returns>
            public string jiemi(string text)
            {
                byte[] key = Encoding.UTF8.GetBytes(localKey);
                byte[] buffer = Convert.FromBase64String(text); //解密密文时用Convert.FromBase64String
                MemoryStream ms = new MemoryStream();
                ICryptoTransform transform = DS.CreateDecryptor(key, IV);
                CryptoStream cs = new CryptoStream(ms, transform, CryptoStreamMode.Write);
                cs.Write(buffer, 0, buffer.Length);
                cs.FlushFinalBlock();
                ms.Close();
                cs.Clear();
                string s = Encoding.UTF8.GetString(ms.ToArray());
                return s;            // return Convert.ToBase64String(ms.ToArray());
            }
        }
    }