源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

asp.net TripleDES加密、解密算法

  • 时间:2022-09-04 13:27 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:asp.net TripleDES加密、解密算法
using System;    using System.Collections.Generic;    using System.Linq;    using System.Text;    using System.Security.Cryptography;    using System.IO;    namespace WindowsFormsApplication1    {       #region TripleDES算法           public class ClassTripleDES        {            public ClassTripleDES()            {            }               //加密,使用密码产生加密算法的公钥,并使用TripleDES对密码进行加密。            public static string Encrypt(string pass)            {                try               {                    byte[] bt = (new System.Text.UnicodeEncoding()).GetBytes(pass);                    PasswordDeriveBytes pdb = new PasswordDeriveBytes(pass, null);                    byte[] key = pdb.GetBytes(24);                    byte[] iv = pdb.GetBytes(8);                    MemoryStream ms = new MemoryStream();                    TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();                    CryptoStream cs = new CryptoStream(ms, tdesc.CreateEncryptor(key, iv), CryptoStreamMode.Write);                    cs.Write(bt, 0, bt.Length);                    cs.FlushFinalBlock();                    return Convert.ToBase64String(ms.ToArray());                }                catch (Exception ex)                {                    throw ex;                }            }               //解密,使用密码产生加密算法的公钥,并使用TripleDES对加密数据进行解密。            public static string Decrypt(string str, string pass)            {                try               {                    byte[] bt = Convert.FromBase64String(str);                    PasswordDeriveBytes pdb = new PasswordDeriveBytes(pass, null);                    byte[] key = pdb.GetBytes(24);                    byte[] iv = pdb.GetBytes(8);                    MemoryStream ms = new MemoryStream();                    TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();                    CryptoStream cs = new CryptoStream(ms, tdesc.CreateDecryptor(key, iv), CryptoStreamMode.Write);                    cs.Write(bt, 0, bt.Length);                    cs.FlushFinalBlock();                    return (new System.Text.UnicodeEncoding()).GetString(ms.ToArray());                }                catch (Exception ex)                {                    throw ex;                }            }            //使用:            //string str = Encrypt("bbb");            //Console.WriteLine(Decrypt(str, "bbb"));               //加密,使用密码产生加密算法的公钥,并使用TripleDES对密码进行加密。            public static string EncryptWithKey(string pass, string p_key)            {                try               {                    byte[] bt = (new System.Text.UnicodeEncoding()).GetBytes(pass);                    PasswordDeriveBytes pdb = new PasswordDeriveBytes(p_key, null);                    byte[] key = pdb.GetBytes(24);                    byte[] iv = pdb.GetBytes(8);                    MemoryStream ms = new MemoryStream();                    TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();                    CryptoStream cs = new CryptoStream(ms, tdesc.CreateEncryptor(key, iv), CryptoStreamMode.Write);                    cs.Write(bt, 0, bt.Length);                    cs.FlushFinalBlock();                    return Convert.ToBase64String(ms.ToArray());                }                catch (Exception ex)                {                    throw ex;                }            }               //解密,使用密码产生加密算法的公钥,并使用TripleDES对加密数据进行解密。            public static string DecryptWithKey(string str, string p_key)            {                try               {                    byte[] bt = Convert.FromBase64String(str);                    PasswordDeriveBytes pdb = new PasswordDeriveBytes(p_key, null);                    byte[] key = pdb.GetBytes(24);                    byte[] iv = pdb.GetBytes(8);                    MemoryStream ms = new MemoryStream();                    TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();                    CryptoStream cs = new CryptoStream(ms, tdesc.CreateDecryptor(key, iv), CryptoStreamMode.Write);                    cs.Write(bt, 0, bt.Length);                    cs.FlushFinalBlock();                    return (new System.Text.UnicodeEncoding()).GetString(ms.ToArray());                }                catch (Exception ex)                {                    throw ex;                }            }           }         #endregion    }  
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部