77 lines
2.8 KiB
C#
77 lines
2.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Security.Cryptography;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace PEP_Tool
|
|
{
|
|
public static class Crypto
|
|
{
|
|
static string CryptoString = @"]VQr$gOKG_19m~p:9y0+DD{6?hL}##l_'^?M)>}OI&EIC~8thwY7YG<\d2[NdKA";
|
|
|
|
public static async Task<string> EncryptString(string Message)
|
|
{
|
|
await Task.Delay(100);
|
|
byte[] Results = null;
|
|
System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
|
|
MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();
|
|
byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(CryptoString));
|
|
TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider();
|
|
TDESAlgorithm.Key = TDESKey;
|
|
TDESAlgorithm.Mode = CipherMode.ECB;
|
|
TDESAlgorithm.Padding = PaddingMode.PKCS7;
|
|
byte[] DataToEncrypt = UTF8.GetBytes(Message);
|
|
try
|
|
{
|
|
ICryptoTransform Encryptor = TDESAlgorithm.CreateEncryptor();
|
|
Results = Encryptor.TransformFinalBlock(DataToEncrypt, 0, DataToEncrypt.Length);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
System.Diagnostics.Debug.WriteLine(ex);
|
|
}
|
|
finally
|
|
{
|
|
TDESAlgorithm.Clear();
|
|
HashProvider.Clear();
|
|
|
|
}
|
|
|
|
return Convert.ToBase64String(Results);
|
|
|
|
}
|
|
|
|
public static async Task<string> DecryptString(string Message)
|
|
{
|
|
await Task.Delay(100);
|
|
byte[] Results;
|
|
System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
|
|
MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();
|
|
byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(CryptoString));
|
|
TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider();
|
|
TDESAlgorithm.Key = TDESKey;
|
|
TDESAlgorithm.Mode = CipherMode.ECB;
|
|
TDESAlgorithm.Padding = PaddingMode.PKCS7;
|
|
byte[] DataToDecrypt = Convert.FromBase64String(Message);
|
|
try
|
|
{
|
|
ICryptoTransform Decryptor = TDESAlgorithm.CreateDecryptor();
|
|
Results = Decryptor.TransformFinalBlock(DataToDecrypt, 0, DataToDecrypt.Length);
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
LogFile.WriteLine(ex.Message.ToString() + $" Datenlänge: {DataToDecrypt.Length}");
|
|
return "%%";
|
|
}
|
|
finally
|
|
{
|
|
TDESAlgorithm.Clear();
|
|
HashProvider.Clear();
|
|
}
|
|
return UTF8.GetString(Results);
|
|
}
|
|
}
|
|
}
|