随笔 - 740  文章 - 1  评论 - 107  阅读 - 34万

[转]CryptographyHelper.cs

复制代码
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

public class CryptographyHelper
{
    private static string sKey = "12345679";
    private static string sIV = "ABCDEFGH";

    /// <summary>
    /// 进行DES加密。
    /// </summary>
    /// <param name="pToEncrypt">要加密的字符串。</param>
    /// <param name="sKey">密钥,且必须为8位。</param>
    /// <returns>以Base64格式返回的加密字符串。</returns>
    public static string Encrypt(string pToEncrypt)
    {
        if (string.IsNullOrEmpty(pToEncrypt))
            return string.Empty;
        using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
        {
            byte[] inputByteArray = Encoding.UTF8.GetBytes(pToEncrypt);
            des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
            des.IV = ASCIIEncoding.ASCII.GetBytes(sIV);
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
            {
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                cs.Close();
            }
            string str = Convert.ToBase64String(ms.ToArray());
            ms.Close();
            return str;
        }
    }

    /// <summary>
    /// 进行DES解密。
    /// </summary>
    /// <param name="pToDecrypt">要解密的以Base64</param>
    /// <param name="sKey">密钥,且必须为8位。</param>
    /// <returns>已解密的字符串。</returns>
    public static string Decrypt(string pToDecrypt)
    {
        if (string.IsNullOrEmpty(pToDecrypt))
            return string.Empty;
        byte[] inputByteArray = Convert.FromBase64String(pToDecrypt.Replace(" ", "+"));
        using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
        {
            des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
            des.IV = ASCIIEncoding.ASCII.GetBytes(sIV);
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write))
            {
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                cs.Close();
            }
            string str = Encoding.UTF8.GetString(ms.ToArray());
            ms.Close();
            return str;
        }
    }
}
复制代码

 

posted on   z5337  阅读(214)  评论(0编辑  收藏  举报
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示