Cryptor/Encryption.cs
2025-05-31 15:08:39 +08:00

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();
}
}
}