58 lines
1.8 KiB
C#
58 lines
1.8 KiB
C#
|
|
using System.Security.Cryptography;
|
|
using System.Text;
|
|
|
|
|
|
namespace nexifylabs.Bcrypt
|
|
{
|
|
public class Encryption
|
|
{
|
|
public static string EncryptString(string plainText)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(plainText);
|
|
var key = "b14ca5898a4e4133bbce2ea2315a1916";
|
|
|
|
byte[] iv = new byte[16];
|
|
byte[] array;
|
|
|
|
using (Aes aes = Aes.Create())
|
|
{
|
|
aes.Key = Encoding.UTF8.GetBytes(key);
|
|
aes.IV = iv;
|
|
|
|
ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
|
|
|
|
using MemoryStream memoryStream = new();
|
|
using CryptoStream cryptoStream = new(memoryStream, encryptor, CryptoStreamMode.Write);
|
|
using (StreamWriter streamWriter = new(cryptoStream))
|
|
{
|
|
streamWriter.Write(plainText);
|
|
}
|
|
|
|
array = memoryStream.ToArray();
|
|
}
|
|
|
|
return Convert.ToBase64String(array);
|
|
}
|
|
|
|
public static string DecryptString(string cipherText)
|
|
{
|
|
var key = "b14ca5898a4e4133bbce2ea2315a1916";
|
|
|
|
byte[] iv = new byte[16];
|
|
byte[] buffer = Convert.FromBase64String(cipherText);
|
|
|
|
using Aes aes = Aes.Create();
|
|
aes.Key = Encoding.UTF8.GetBytes(key);
|
|
aes.IV = iv;
|
|
ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
|
|
|
|
using MemoryStream memoryStream = new(buffer);
|
|
using CryptoStream cryptoStream = new((Stream)memoryStream, decryptor, CryptoStreamMode.Read);
|
|
using StreamReader streamReader = new((Stream)cryptoStream);
|
|
return streamReader.ReadToEnd();
|
|
}
|
|
|
|
}
|
|
}
|