Asp.net,C# 加密解密字符串的使用详解(2)

// 将字节写到转换流里面去。
            cStream.Write(toEncrypt, 0, toEncrypt.Length);
            cStream.FlushFinalBlock();

// 在调用转换流的FlushFinalBlock方法后,内部就会进行转换了,此时mStream就是加密后的流了。
            byte[] ret = mStream.ToArray();

// Close the streams.
            cStream.Close();
            mStream.Close();

//将加密后的字节进行64编码。
            return Convert.ToBase64String(ret);
        }


解密方法也类似:

复制代码 代码如下:


/// <summary>
        /// 获取解密后的值
        /// </summary>
        /// <param>经过加密后的字符串.</param>
        /// <returns></returns>
        public string GetDecryptedValue(string inputValue)
        {
            TripleDESCryptoServiceProvider provider = this.GetCryptoProvider();

byte[] inputEquivalent = Convert.FromBase64String(inputValue);

// 创建内存流保存解密后的数据
            MemoryStream msDecrypt = new MemoryStream();

// 创建转换流。
            CryptoStream csDecrypt = new CryptoStream(msDecrypt,
                                                        provider.CreateDecryptor(),
                                                        CryptoStreamMode.Write);

csDecrypt.Write(inputEquivalent, 0, inputEquivalent.Length);

csDecrypt.FlushFinalBlock();
            csDecrypt.Close();

//获取字符串。
            return new UTF8Encoding().GetString(msDecrypt.ToArray());
        }


完整的CryptoHelper代码如下:

复制代码 代码如下:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.IO;
using System.Configuration;

namespace WindowsFormsApplication1
{
    public class CryptoHelper
    {
        //private readonly string IV = "SuFjcEmp/TE=";
        private readonly string IV = string.Empty;
        //private readonly string Key = "KIPSToILGp6fl+3gXJvMsN4IajizYBBT";
        private readonly string Key = string.Empty;

public CryptoHelper()
        {
            IV = ConfigurationManager.AppSettings["IV"];
            Key = ConfigurationManager.AppSettings["Key"];
        }

/// <summary>
        /// 获取加密后的字符串
        /// </summary>
        /// <param>输入值.</param>
        /// <returns></returns>
        public string GetEncryptedValue(string inputValue)
        {
            TripleDESCryptoServiceProvider provider = this.GetCryptoProvider();

// 创建内存流来保存加密后的流
            MemoryStream mStream = new MemoryStream();

// 创建加密转换流
            CryptoStream cStream = new CryptoStream(mStream,

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjgxwf.html