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

provider.CreateEncryptor(), CryptoStreamMode.Write);
            // 使用UTF8编码获取输入字符串的字节。
            byte[] toEncrypt = new UTF8Encoding().GetBytes(inputValue);

// 将字节写到转换流里面去。
            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>
        /// <returns></returns>
        private TripleDESCryptoServiceProvider GetCryptoProvider()
        {
            TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();

provider.IV = Convert.FromBase64String(IV);
            provider.Key = Convert.FromBase64String(Key);

return provider;

}

/// <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());
        }
    }
}


使用例子:

image

您可能感兴趣的文章:

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

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