Add source
This commit is contained in:
@@ -0,0 +1,211 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using Bunifu.Licensing.Properties;
|
||||
|
||||
namespace Bunifu.Licensing.Helpers
|
||||
{
|
||||
// Token: 0x02000033 RID: 51
|
||||
[DebuggerStepThrough]
|
||||
internal sealed class Cryptography
|
||||
{
|
||||
// Token: 0x06000242 RID: 578 RVA: 0x00016B48 File Offset: 0x00014D48
|
||||
public static string Encrypt(string text)
|
||||
{
|
||||
string sha = Resources.SHA;
|
||||
bool flag = string.IsNullOrWhiteSpace(text);
|
||||
if (flag)
|
||||
{
|
||||
throw new ArgumentNullException("text");
|
||||
}
|
||||
RijndaelManaged rijndaelManaged = Cryptography.NewRijndaelManaged(sha);
|
||||
ICryptoTransform cryptoTransform = rijndaelManaged.CreateEncryptor(rijndaelManaged.Key, rijndaelManaged.IV);
|
||||
MemoryStream memoryStream = new MemoryStream();
|
||||
using (CryptoStream cryptoStream = new CryptoStream(memoryStream, cryptoTransform, CryptoStreamMode.Write))
|
||||
{
|
||||
using (StreamWriter streamWriter = new StreamWriter(cryptoStream))
|
||||
{
|
||||
streamWriter.Write(text);
|
||||
}
|
||||
}
|
||||
return Convert.ToBase64String(memoryStream.ToArray());
|
||||
}
|
||||
|
||||
// Token: 0x06000243 RID: 579 RVA: 0x00016BFC File Offset: 0x00014DFC
|
||||
public static string Encrypt2(string text)
|
||||
{
|
||||
string sha = Resources.SHA2;
|
||||
bool flag = string.IsNullOrWhiteSpace(text);
|
||||
if (flag)
|
||||
{
|
||||
throw new ArgumentNullException("text");
|
||||
}
|
||||
RijndaelManaged rijndaelManaged = Cryptography.NewRijndaelManaged(sha);
|
||||
ICryptoTransform cryptoTransform = rijndaelManaged.CreateEncryptor(rijndaelManaged.Key, rijndaelManaged.IV);
|
||||
MemoryStream memoryStream = new MemoryStream();
|
||||
using (CryptoStream cryptoStream = new CryptoStream(memoryStream, cryptoTransform, CryptoStreamMode.Write))
|
||||
{
|
||||
using (StreamWriter streamWriter = new StreamWriter(cryptoStream))
|
||||
{
|
||||
streamWriter.Write(text);
|
||||
}
|
||||
}
|
||||
return Convert.ToBase64String(memoryStream.ToArray());
|
||||
}
|
||||
|
||||
// Token: 0x06000244 RID: 580 RVA: 0x00016CB0 File Offset: 0x00014EB0
|
||||
public static string Decrypt(string cipherText)
|
||||
{
|
||||
string sha = Resources.SHA;
|
||||
bool flag = string.IsNullOrEmpty(cipherText);
|
||||
if (flag)
|
||||
{
|
||||
throw new ArgumentNullException("cipherText");
|
||||
}
|
||||
bool flag2 = !Cryptography.IsBase64String(cipherText);
|
||||
if (flag2)
|
||||
{
|
||||
throw new Exception("The cipherText input parameter is not base64 encoded");
|
||||
}
|
||||
RijndaelManaged rijndaelManaged = Cryptography.NewRijndaelManaged(sha);
|
||||
ICryptoTransform cryptoTransform = rijndaelManaged.CreateDecryptor(rijndaelManaged.Key, rijndaelManaged.IV);
|
||||
byte[] array = Convert.FromBase64String(cipherText);
|
||||
string text;
|
||||
using (MemoryStream memoryStream = new MemoryStream(array))
|
||||
{
|
||||
using (CryptoStream cryptoStream = new CryptoStream(memoryStream, cryptoTransform, CryptoStreamMode.Read))
|
||||
{
|
||||
using (StreamReader streamReader = new StreamReader(cryptoStream))
|
||||
{
|
||||
text = streamReader.ReadToEnd();
|
||||
}
|
||||
}
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
// Token: 0x06000245 RID: 581 RVA: 0x00016DA0 File Offset: 0x00014FA0
|
||||
public static string Decrypt2(string cipherText)
|
||||
{
|
||||
string sha = Resources.SHA2;
|
||||
bool flag = string.IsNullOrEmpty(cipherText);
|
||||
if (flag)
|
||||
{
|
||||
throw new ArgumentNullException("cipherText");
|
||||
}
|
||||
bool flag2 = !Cryptography.IsBase64String(cipherText);
|
||||
if (flag2)
|
||||
{
|
||||
throw new Exception("The cipherText input parameter is not base64 encoded");
|
||||
}
|
||||
RijndaelManaged rijndaelManaged = Cryptography.NewRijndaelManaged(sha);
|
||||
ICryptoTransform cryptoTransform = rijndaelManaged.CreateDecryptor(rijndaelManaged.Key, rijndaelManaged.IV);
|
||||
byte[] array = Convert.FromBase64String(cipherText);
|
||||
string text;
|
||||
using (MemoryStream memoryStream = new MemoryStream(array))
|
||||
{
|
||||
using (CryptoStream cryptoStream = new CryptoStream(memoryStream, cryptoTransform, CryptoStreamMode.Read))
|
||||
{
|
||||
using (StreamReader streamReader = new StreamReader(cryptoStream))
|
||||
{
|
||||
text = streamReader.ReadToEnd();
|
||||
}
|
||||
}
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
// Token: 0x06000246 RID: 582 RVA: 0x00016E90 File Offset: 0x00015090
|
||||
public static string Base64Encode(string plainText)
|
||||
{
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(plainText);
|
||||
return Convert.ToBase64String(bytes);
|
||||
}
|
||||
|
||||
// Token: 0x06000247 RID: 583 RVA: 0x00016EB4 File Offset: 0x000150B4
|
||||
public static string Base64Decode(string base64EncodedData)
|
||||
{
|
||||
byte[] array = Convert.FromBase64String(base64EncodedData);
|
||||
return Encoding.UTF8.GetString(array);
|
||||
}
|
||||
|
||||
// Token: 0x06000248 RID: 584 RVA: 0x00016ED8 File Offset: 0x000150D8
|
||||
public static bool IsBase64String(string base64String)
|
||||
{
|
||||
base64String = base64String.Trim();
|
||||
return base64String.Length % 4 == 0 && Regex.IsMatch(base64String, "^[a-zA-Z0-9\\+/]*={0,3}$", RegexOptions.None);
|
||||
}
|
||||
|
||||
// Token: 0x06000249 RID: 585 RVA: 0x00016F0C File Offset: 0x0001510C
|
||||
public static string ComputeMD5(string rawData)
|
||||
{
|
||||
bool flag = rawData == null || rawData.Length == 0;
|
||||
string text;
|
||||
if (flag)
|
||||
{
|
||||
text = string.Empty;
|
||||
}
|
||||
else
|
||||
{
|
||||
MD5 md = new MD5CryptoServiceProvider();
|
||||
byte[] bytes = Encoding.Default.GetBytes(rawData);
|
||||
byte[] array = md.ComputeHash(bytes);
|
||||
text = BitConverter.ToString(array).Replace("-", "").ToLowerInvariant();
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
// Token: 0x0600024A RID: 586 RVA: 0x00016F74 File Offset: 0x00015174
|
||||
public static string ComputeSHA1(string rawData)
|
||||
{
|
||||
string text;
|
||||
using (SHA1Managed sha1Managed = new SHA1Managed())
|
||||
{
|
||||
byte[] array = sha1Managed.ComputeHash(Encoding.UTF8.GetBytes(rawData));
|
||||
StringBuilder stringBuilder = new StringBuilder(array.Length * 2);
|
||||
foreach (byte b in array)
|
||||
{
|
||||
stringBuilder.Append(b.ToString("x2"));
|
||||
}
|
||||
text = stringBuilder.ToString();
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
// Token: 0x0600024B RID: 587 RVA: 0x00017000 File Offset: 0x00015200
|
||||
public static string ComputeSHA256(string rawData)
|
||||
{
|
||||
string text;
|
||||
using (SHA256 sha = SHA256.Create())
|
||||
{
|
||||
byte[] array = sha.ComputeHash(Encoding.UTF8.GetBytes(rawData));
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
for (int i = 0; i < array.Length; i++)
|
||||
{
|
||||
stringBuilder.Append(array[i].ToString("x2"));
|
||||
}
|
||||
text = stringBuilder.ToString();
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
// Token: 0x0600024C RID: 588 RVA: 0x00017084 File Offset: 0x00015284
|
||||
private static RijndaelManaged NewRijndaelManaged(string salt)
|
||||
{
|
||||
bool flag = salt == null;
|
||||
if (flag)
|
||||
{
|
||||
throw new ArgumentNullException("salt");
|
||||
}
|
||||
byte[] bytes = Encoding.ASCII.GetBytes(salt);
|
||||
Rfc2898DeriveBytes rfc2898DeriveBytes = new Rfc2898DeriveBytes(Resources.SHA, bytes);
|
||||
RijndaelManaged rijndaelManaged = new RijndaelManaged();
|
||||
rijndaelManaged.Key = rfc2898DeriveBytes.GetBytes(rijndaelManaged.KeySize / 8);
|
||||
rijndaelManaged.IV = rfc2898DeriveBytes.GetBytes(rijndaelManaged.BlockSize / 8);
|
||||
return rijndaelManaged;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user