using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace Inotify.Common
{
public static class Extensions
{
static int rep = 0;
///
/// MD5加密字符串(32位大写)
///
/// 源字符串
/// 加密后的字符串
public static string ToMd5(this string source)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] bytes = Encoding.UTF8.GetBytes(source);
string result = BitConverter.ToString(md5.ComputeHash(bytes));
return result.Replace("-", "");
}
public static string UrlEncode(this string str)
{
string urlStr = System.Web.HttpUtility.UrlEncode(str);
return urlStr;
}
public static string Base64Encode(this string source)
{
if (string.IsNullOrEmpty(source)) return "";
byte[] bytes = (Encoding.UTF8.GetBytes(source));
return Convert.ToBase64String(bytes);
}
public static string Base64Decode(this string source)
{
if (string.IsNullOrEmpty(source)) return "";
var bytes = Convert.FromBase64String(source);
return System.Text.Encoding.Default.GetString(bytes);
}
public static string GenerateCheckCode(this int codeCount)
{
string str = string.Empty;
long num2 = DateTime.Now.Ticks + rep;
rep++;
Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> rep)));
for (int i = 0; i < codeCount; i++)
{
char ch;
int num = random.Next();
if ((num % 2) == 0)
{
ch = (char)(0x30 + ((ushort)(num % 10)));
}
else
{
ch = (char)(0x41 + ((ushort)(num % 0x1a)));
}
str += ch.ToString();
}
return str;
}
}
}