WeeXnesSuite/WeeXnes/Core/EncryptorLibrary.cs

69 lines
2.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace EncryptionLib
{
public static class EncryptorLibary
{
public static string encrypt(string hash, string texttenc)
{
string returnval = "";
byte[] data = UTF8Encoding.UTF8.GetBytes(texttenc);
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
{
byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash));
using (TripleDESCryptoServiceProvider tripDes = new TripleDESCryptoServiceProvider() { Key = keys, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 })
{
ICryptoTransform transform = tripDes.CreateEncryptor();
byte[] result = transform.TransformFinalBlock(data, 0, data.Length);
returnval = Convert.ToBase64String(result, 0, result.Length);
}
}
return returnval;
}
public static string decrypt(string hash, string texttenc)
{
string returnval = "";
byte[] data = Convert.FromBase64String(texttenc);
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
{
byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash));
using (TripleDESCryptoServiceProvider tripDes = new TripleDESCryptoServiceProvider() { Key = keys, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 })
{
ICryptoTransform transform = tripDes.CreateDecryptor();
try
{
byte[] result = transform.TransformFinalBlock(data, 0, data.Length);
returnval = UTF8Encoding.UTF8.GetString(result);
}
catch
{
returnval = "Wrong Hash";
}
}
}
return returnval;
}
public static string[] encryptArray(string hash, string[] arrayToEncrypt)
{
for (int i = 0; i < arrayToEncrypt.Length; i++)
{
arrayToEncrypt[i] = EncryptorLibary.encrypt(hash, arrayToEncrypt[i]);
}
return arrayToEncrypt;
}
public static string[] decryptArray(string hash, string[] arrayToDecrypt)
{
for (int i = 0; i < arrayToDecrypt.Length; i++)
{
arrayToDecrypt[i] = EncryptorLibary.decrypt(hash, arrayToDecrypt[i]);
}
return arrayToDecrypt;
}
}
}