stringdecryptor.cs

来自「这是可以加密&解密字符串」· CS 代码 · 共 52 行

CS
52
字号
using System.Security.Cryptography;
using System.IO;

namespace GTT
{
    public class StringDecryptor : StringCrypto
    {
                /// <remarks>
        /// 使用.Net SymmetricAlgorithm 类的构造器.
        /// </remarks>
        public StringDecryptor(SymmProvEnum netSelected)
            : base(netSelected)
        {
        }
        /// <remarks>
        /// 使用自定义SymmetricAlgorithm类的构造器.
        /// </remarks>
        public StringDecryptor(SymmetricAlgorithm ServiceProvider)
            : base(ServiceProvider)
        {
        }

        public override string Execute(string source)
        {
            // convert from Base64 to binary 
            byte[] bytIn = System.Convert.FromBase64String(source);
            CryptoStream cs = Decrypting(bytIn);
            // read out the result from the Crypto Stream 
            System.IO.StreamReader sr = new System.IO.StreamReader(cs);
            return sr.ReadToEnd();
        }

        private CryptoStream Decrypting(byte[] source)
        {
            // create a MemoryStream with the input 
            System.IO.MemoryStream ms = new System.IO.MemoryStream(source, 0, source.Length);

            byte[] bytKey = GetLegalKey(Key);

            // set the private key 
            _mobjCryptoService.Key = bytKey;
            _mobjCryptoService.IV = bytKey;

            // create a Decryptor from the Provider Service instance 
            ICryptoTransform encrypto = _mobjCryptoService.CreateDecryptor();

            // create Crypto Stream that transforms a stream using the decryption 
            return new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?