Squashed 'FSI.Lib/' content from commit dceb500
git-subtree-dir: FSI.Lib git-subtree-split: dceb5008a2176c2b8ab5e55a73b1c25d31a7f841
This commit is contained in:
78
FSI.Lib/DeEncryptString/DeEncrypt.cs
Normal file
78
FSI.Lib/DeEncryptString/DeEncrypt.cs
Normal file
@@ -0,0 +1,78 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
namespace FSI.Lib.DeEncryptString
|
||||
{
|
||||
public static class DeEncrypt
|
||||
{
|
||||
/// <summary>
|
||||
/// Encrypts the string.
|
||||
/// </summary>
|
||||
/// <param name="clearText">The clear text.</param>
|
||||
/// <param name="Key">The key.</param>
|
||||
/// <param name="IV">The IV.</param>
|
||||
/// <returns></returns>
|
||||
private static byte[] CryptString(byte[] clearText, byte[] Key, byte[] IV)
|
||||
{
|
||||
MemoryStream ms = new MemoryStream();
|
||||
Rijndael alg = Rijndael.Create();
|
||||
alg.Key = Key;
|
||||
alg.IV = IV;
|
||||
CryptoStream cs = new CryptoStream(ms, alg.CreateEncryptor(), CryptoStreamMode.Write);
|
||||
cs.Write(clearText, 0, clearText.Length);
|
||||
cs.Close();
|
||||
byte[] encryptedData = ms.ToArray();
|
||||
return encryptedData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Encrypts the string.
|
||||
/// </summary>
|
||||
/// <param name="clearText">The clear text.</param>
|
||||
/// <param name="Password">The password.</param>
|
||||
/// <returns></returns>
|
||||
public static string CryptString(string clearText, string Password)
|
||||
{
|
||||
byte[] clearBytes = System.Text.Encoding.Unicode.GetBytes(clearText);
|
||||
PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
|
||||
byte[] encryptedData = CryptString(clearBytes, pdb.GetBytes(32), pdb.GetBytes(16));
|
||||
return Convert.ToBase64String(encryptedData);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Decrypts the string.
|
||||
/// </summary>
|
||||
/// <param name="cipherData">The cipher data.</param>
|
||||
/// <param name="Key">The key.</param>
|
||||
/// <param name="IV">The IV.</param>
|
||||
/// <returns></returns>
|
||||
private static byte[] DecryptString(byte[] cipherData, byte[] Key, byte[] IV)
|
||||
{
|
||||
MemoryStream ms = new MemoryStream();
|
||||
var alg = Rijndael.Create();
|
||||
alg.Key = Key;
|
||||
alg.IV = IV;
|
||||
CryptoStream cs = new CryptoStream(ms, alg.CreateDecryptor(), CryptoStreamMode.Write);
|
||||
cs.Write(cipherData, 0, cipherData.Length);
|
||||
cs.Close();
|
||||
byte[] decryptedData = ms.ToArray();
|
||||
return decryptedData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Decrypts the string.
|
||||
/// </summary>
|
||||
/// <param name="cipherText">The cipher text.</param>
|
||||
/// <param name="Password">The password.</param>
|
||||
/// <returns></returns>
|
||||
public static string DecryptString(string cipherText, string Password)
|
||||
{
|
||||
byte[] cipherBytes = Convert.FromBase64String(cipherText);
|
||||
PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
|
||||
byte[] decryptedData = DecryptString(cipherBytes, pdb.GetBytes(32), pdb.GetBytes(16));
|
||||
return System.Text.Encoding.Unicode.GetString(decryptedData);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user