Files
JiraTimeBot/JiraTimeBotForm/Passwords/EncryptionClass.cs
T
2019-03-01 18:26:38 +03:00

42 lines
1.3 KiB
C#

using System;
using System.Text;
using System.Security.Cryptography;
namespace JiraTimeBotForm.Passwords
{
public class EncryptionClass
{
private byte[] GetEntropy(string EntropyString)
{
MD5 md5 = MD5.Create();
return md5.ComputeHash(Encoding.UTF8.GetBytes(EntropyString));
}
public string Encrypt(string username, string password, string address)
{
byte[] entropy = GetEntropy(address + username);
byte[] pass = Encoding.UTF8.GetBytes(password);
byte[] crypted = ProtectedData.Protect(pass, entropy, DataProtectionScope.LocalMachine);
var cryptedBase64 = Convert.ToBase64String(crypted);
return cryptedBase64;
}
public string Decrypt(string username, string password, string address)
{
try
{
var pass = Convert.FromBase64String(password);
byte[] entropy = GetEntropy(address + username);
pass = ProtectedData.Unprotect(pass, entropy, DataProtectionScope.LocalMachine);
return Encoding.UTF8.GetString(pass);
}
catch (Exception ex)
{
return "";
}
}
}
}