📄 stringencryptor.cs
字号:
using System.Security.Cryptography;
using System.IO;
namespace GTT
{
public class StringEncryptor : StringCrypto
{
/// <remarks>
/// 使用.Net SymmetricAlgorithm 类的构造器.
/// </remarks>
public StringEncryptor(SymmProvEnum netSelected)
: base(netSelected)
{
}
/// <remarks>
/// 使用自定义SymmetricAlgorithm类的构造器.
/// </remarks>
public StringEncryptor(SymmetricAlgorithm ServiceProvider)
: base(ServiceProvider)
{
}
public override string Execute(string source)
{
byte[] bytIn = System.Text.ASCIIEncoding.ASCII.GetBytes(source);
byte[] bytOut = Encrypting(bytIn);
int i = 0;
for (i = 0; i < bytOut.Length; i++)
{
if (bytOut[i] == 0)
{
break;
}
}
return System.Convert.ToBase64String(bytOut, 0, i);
}
private byte[] Encrypting(byte[] Source)
{
// create a MemoryStream so that the process can be done without I/O files
System.IO.MemoryStream ms = new System.IO.MemoryStream();
byte[] bytKey = GetLegalKey(Key);
// set the private key
_mobjCryptoService.Key = bytKey;
_mobjCryptoService.IV = bytKey;
// create an Encryptor from the Provider Service instance
ICryptoTransform encrypto = _mobjCryptoService.CreateEncryptor();
// create Crypto Stream that transforms a stream using the encryption
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
// write out encrypted content into MemoryStream
cs.Write(Source, 0, Source.Length);
cs.FlushFinalBlock();
// get the output and trim the ''\0'' bytes
byte[] bytOut = ms.GetBuffer();
// convert into Base64 so that the result can be used in xml
return bytOut;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -