old_flsystem/类库/Chat.Framework/Utils/Util.cs

950 lines
33 KiB
C#
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using CsharpHttpHelper;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Net;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Caching;
namespace Chat.Framework
{
/// <summary>
/// Generates a 16 byte Unique Identification code of a computer
/// Example: 4876-8DB5-EE85-69D3-FE52-8CF7-395D-2EA9
/// </summary>
class FingerPrint
{
private static string fingerPrint = string.Empty;
public static string Value()
{
if (string.IsNullOrEmpty(fingerPrint))
{
fingerPrint = GetHash("CPU >> " + cpuId() + "|BIOS >> " +
biosId() + "|BASE >> " + baseId()
+ "|DISK >> " + diskId() + "|VIDEO >> " +
videoId() + "|MAC >> " + macId()
);
}
return fingerPrint;
}
private static string GetHash(string s)
{
MD5 sec = new MD5CryptoServiceProvider();
ASCIIEncoding enc = new ASCIIEncoding();
byte[] bt = enc.GetBytes(s);
return GetHexString(sec.ComputeHash(bt));
}
private static string GetHexString(byte[] bt)
{
string s = string.Empty;
for (int i = 0; i < bt.Length; i++)
{
byte b = bt[i];
int n, n1, n2;
n = (int)b;
n1 = n & 15;
n2 = (n >> 4) & 15;
if (n2 > 9)
s += ((char)(n2 - 10 + (int)'A')).ToString();
else
s += n2.ToString();
if (n1 > 9)
s += ((char)(n1 - 10 + (int)'A')).ToString();
else
s += n1.ToString();
if ((i + 1) != bt.Length && (i + 1) % 2 == 0) s += "-";
}
return s;
}
#region Original Device ID Getting Code
//Return a hardware identifier
private static string identifier
(string wmiClass, string wmiProperty, string wmiMustBeTrue)
{
string result = "";
System.Management.ManagementClass mc =
new System.Management.ManagementClass(wmiClass);
System.Management.ManagementObjectCollection moc = mc.GetInstances();
foreach (System.Management.ManagementObject mo in moc)
{
if (mo[wmiMustBeTrue].ToString() == "True")
{
//Only get the first one
if (result == "")
{
try
{
result = mo[wmiProperty].ToString();
break;
}
catch
{
}
}
}
}
return result;
}
//Return a hardware identifier
private static string identifier(string wmiClass, string wmiProperty)
{
string result = "";
System.Management.ManagementClass mc =
new System.Management.ManagementClass(wmiClass);
System.Management.ManagementObjectCollection moc = mc.GetInstances();
foreach (System.Management.ManagementObject mo in moc)
{
//Only get the first one
if (result == "")
{
try
{
result = mo[wmiProperty].ToString();
break;
}
catch
{
}
}
}
return result;
}
private static string cpuId()
{
//Uses first CPU identifier available in order of preference
//Don't get all identifiers, as it is very time consuming
string retVal = identifier("Win32_Processor", "UniqueId");
if (retVal == "") //If no UniqueID, use ProcessorID
{
retVal = identifier("Win32_Processor", "ProcessorId");
if (retVal == "") //If no ProcessorId, use Name
{
retVal = identifier("Win32_Processor", "Name");
if (retVal == "") //If no Name, use Manufacturer
{
retVal = identifier("Win32_Processor", "Manufacturer");
}
//Add clock speed for extra security
retVal += identifier("Win32_Processor", "MaxClockSpeed");
}
}
return retVal;
}
//BIOS Identifier
private static string biosId()
{
return identifier("Win32_BIOS", "Manufacturer")
+ identifier("Win32_BIOS", "SMBIOSBIOSVersion")
+ identifier("Win32_BIOS", "IdentificationCode")
+ identifier("Win32_BIOS", "SerialNumber")
+ identifier("Win32_BIOS", "ReleaseDate")
+ identifier("Win32_BIOS", "Version");
}
//Main physical hard drive ID
private static string diskId()
{
return identifier("Win32_DiskDrive", "Model")
+ identifier("Win32_DiskDrive", "Manufacturer")
+ identifier("Win32_DiskDrive", "Signature")
+ identifier("Win32_DiskDrive", "TotalHeads");
}
//Motherboard ID
private static string baseId()
{
return identifier("Win32_BaseBoard", "Model")
+ identifier("Win32_BaseBoard", "Manufacturer")
+ identifier("Win32_BaseBoard", "Name")
+ identifier("Win32_BaseBoard", "SerialNumber");
}
//Primary video controller ID
private static string videoId()
{
return identifier("Win32_VideoController", "DriverVersion")
+ identifier("Win32_VideoController", "Name");
}
//First enabled network card ID
private static string macId()
{
return identifier("Win32_NetworkAdapterConfiguration",
"MACAddress", "IPEnabled");
}
#endregion
}
/// <summary>
/// 工具类
/// </summary>
internal class Util
{
/// <summary>
/// 设置缓存
/// </summary>
/// <param name="robotname"></param>
/// <param name="username"></param>
/// <param name="text"></param>
/// <returns></returns>
public static bool SetCache(string text, int seconds = 30)
{
try
{
Cache cache = HttpRuntime.Cache;
//查找 md5 的缓存,不存在则返回null
object item = cache[text];
if (item == null)
cache.Insert(text, 1, null, DateTime.Now.AddSeconds(seconds), System.Web.Caching.Cache.NoSlidingExpiration);
return true;
}
catch (Exception ex)
{ }
return false;
}
/// <summary>
/// 缓存是否存在
/// </summary>
/// <param name="robotname"></param>
/// <param name="username"></param>
/// <param name="text"></param>
/// <returns></returns>
public static bool GetCache(string text)
{
try
{
Cache cache = HttpRuntime.Cache;
object item = cache[text];
return item != null ? true : false;
}
catch (Exception)
{ }
return false;
}
/// <summary>
/// [解析]
/// 类型=转账,新好友,新申请,新群友,群消息,私消息,图片,视频,取群成员
/// </summary>
private static List<string> NoAnalysisConfig = null;
public static List<string> GetNoAnalysisConfig()
{
try
{
if (NoAnalysisConfig == null)
{
IniHelper ini = new IniHelper(Util.MapFile("系统配置.ini", "Config"));
var tmp = ini.GetValue("解析", "类型");
if (!string.IsNullOrWhiteSpace(tmp))
NoAnalysisConfig = tmp.Replace("", ",").Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(f => f.Trim()).ToList();
else
NoAnalysisConfig = new List<string>();
}
}
catch (Exception ex)
{ }
return NoAnalysisConfig;
}
/// <summary>
/// 通过FileStream 来打开文件这样就可以实现不锁定Image文件到时可以让多用户同时访问Image文件
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static Bitmap ReadImageFile(string path)
{
//OpenRead
Image result = null;
try
{
using (FileStream fs = File.OpenRead(path))
{
int filelength = 0;
filelength = (int)fs.Length; //获得文件长度
Byte[] image = new Byte[filelength]; //建立一个字节数组
fs.Read(image, 0, filelength); //按字节流读取
result = Image.FromStream(fs);
return new Bitmap(result);
}
}
catch (Exception)
{ }
return null;
}
/// <summary>
/// 将图片控制在宽度为指定的像素
/// </summary>
/// <param name="srcImage"></param>
/// <param name="size"></param>
/// <returns></returns>
public static Bitmap PercentImage(Image srcImage, int size = 200)
{
int newW = srcImage.Width < size ? srcImage.Width : size;
int newH = int.Parse(Math.Round(srcImage.Height * (double)newW / srcImage.Width).ToString());
try
{
Bitmap b = new Bitmap(newW, newH);
Graphics g = Graphics.FromImage(b);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Default;
g.DrawImage(srcImage, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, srcImage.Width, srcImage.Height), GraphicsUnit.Pixel);
g.Dispose();
return b;
}
catch (Exception)
{
return null;
}
}
/// <summary>
/// 将图片按百分比压缩,
/// </summary>
/// <param name="iSource"></param>
/// <param name="outPath"></param>
/// <param name="flag">flag取值1到100越小压缩比越大</param>
/// <returns></returns>
public static bool YaSuo(Image iSource, string outPath, int flag = 80)
{
ImageFormat tFormat = iSource.RawFormat;
EncoderParameters ep = new EncoderParameters();
long[] qy = new long[1];
qy[0] = flag;
EncoderParameter eParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, qy);
ep.Param[0] = eParam;
try
{
ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageDecoders();
ImageCodecInfo jpegICIinfo = null;
for (int x = 0; x < arrayICI.Length; x++)
{
if (arrayICI[x].FormatDescription.Equals("JPEG"))
{
jpegICIinfo = arrayICI[x];
break;
}
}
if (jpegICIinfo != null)
iSource.Save(outPath, jpegICIinfo, ep);
else
iSource.Save(outPath, tFormat);
return true;
}
catch
{
return false;
}
iSource.Dispose();
}
public static string GetMD5Hash(byte[] bytedata)
{
try
{
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] retVal = md5.ComputeHash(bytedata);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < retVal.Length; i++)
{
sb.Append(retVal[i].ToString("x2"));
}
return sb.ToString();
}
catch (Exception ex)
{
throw new Exception("GetMD5Hash() fail,error:" + ex.Message);
}
}
public static string RemoveEmoji(string text)
{
if (string.IsNullOrWhiteSpace(text)) return string.Empty;
if (!string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["RemoveWechatEmoji"]) && System.Configuration.ConfigurationManager.AppSettings["RemoveWechatEmoji"].ToUpper() == "FALSE")
{
return text;
}
text = Regex.Replace(text, @"\%uD.{3}", "");
text = Regex.Replace(text, "[👃☺️☹️☠️✊✌️☝✋✍️♀️♂️]", "");
foreach (var a in text)
{
byte[] bts = Encoding.UTF32.GetBytes(a.ToString());
if (bts[0].ToString() == "253" && bts[1].ToString() == "255")
{
text = text.Replace(a.ToString(), "");
}
}
return text;
}
/// <summary>
/// 壓縮圖片 /// </summary>
/// <param name="fileStream">圖片流</param>
/// <param name="quality">壓縮質量0-100之間 數值越大質量越高</param>
/// <returns></returns>
public static byte[] CompressionImage(Stream fileStream, long quality)
{
try
{
using (Image img = Image.FromStream(fileStream))
{
using (Bitmap bitmap = new Bitmap(img))
{
ImageCodecInfo CodecInfo = GetEncoder(img.RawFormat);
System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
EncoderParameters myEncoderParameters = new EncoderParameters(1);
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, quality);
myEncoderParameters.Param[0] = myEncoderParameter;
using (MemoryStream ms = new MemoryStream())
{
bitmap.Save(ms, CodecInfo, myEncoderParameters);
myEncoderParameters.Dispose();
myEncoderParameter.Dispose();
return ms.ToArray();
}
}
}
}
catch (Exception)
{ return null; }
}
#region
/// <summary>
/// 获取表示JPEG编解码器的ImageCodecInfo对象。
/// </summary>
/// <param name="mimeType"></param>
/// <returns></returns>
private static ImageCodecInfo GetEncoderInfo(String mimeType)
{
int j;
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageEncoders();
for (j = 0; j < encoders.Length; ++j)
{
if (encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
/// <summary>
/// 图片压缩(降低质量以减小文件的大小)
/// </summary>
/// <param name="srcBitmap">传入的Bitmap对象</param>
/// <param name="destStream">压缩后的Stream对象</param>
/// <param name="level">压缩等级0到1000 最差质量100 最佳</param>
public static void Compress(Bitmap srcBitmap, Stream destStream, long level)
{
try
{
ImageCodecInfo myImageCodecInfo;
System.Drawing.Imaging.Encoder myEncoder;
EncoderParameter myEncoderParameter;
EncoderParameters myEncoderParameters;
// 获取表示JPEG编解码器的ImageCodecInfo对象。
myImageCodecInfo = GetEncoderInfo("image/jpeg");
//基于质量参数类别的GUID创建编码器对象。
myEncoder = System.Drawing.Imaging.Encoder.Quality;
// 创建EncoderParameters对象。EncoderParameters对象有一个EncoderParameter.objects数组。在这种情况下只有一个。数组中的EncoderParameter对象。
myEncoderParameters = new EncoderParameters(1);
// 将位图保存为一个JPEG文件给定的质量水平
myEncoderParameter = new EncoderParameter(myEncoder, level);
myEncoderParameters.Param[0] = myEncoderParameter;
srcBitmap.Save(destStream, myImageCodecInfo, myEncoderParameters);
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 图片压缩(降低质量以减小文件的大小)
/// </summary>
/// <param name="srcBitMap">传入的Bitmap对象</param>
/// <param name="destFile">压缩后的图片保存路径</param>
/// <param name="level">压缩等级0到1000 最差质量100 最佳</param>
public static void Compress(Bitmap srcBitMap, string destFile, long level)
{
try
{
Stream s = new FileStream(destFile, FileMode.Create);
Compress(srcBitMap, s, level);
s.Close();
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
private static ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{ return codec; }
}
return null;
}
public static string GenerateRandomCode(int number)
{
StringBuilder sb = new StringBuilder();
Random r = new Random();
for (int i = 0; i < number; i++)
{
sb.Append(r.Next(0, 9));
}
return sb.ToString();
}
public static int ReadInt(byte[] buf, int index)
{
if (buf.Length >= 16)
{
var seqBuf = new byte[4];
Buffer.BlockCopy(buf, index, seqBuf, 0, 4);
return IPAddress.NetworkToHostOrder(BitConverter.ToInt32(seqBuf, 0));
}
return 1;
}
public static Dictionary<string, object> ConvertJsonToDic(string str)
{
try
{
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var json = serializer.Deserialize<Dictionary<string, object>>(str);
return json;
}
catch { }
return null;
}
public static string ObjectToJson(object obj)
{
string result;
try
{
System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer();
jss.MaxJsonLength = Int32.MaxValue;
result = jss.Serialize(obj);
}
catch (Exception ex)
{
result = ex.Message;
}
return result;
}
public static int TimeStamp()
{
DateTime time = DateTime.Now.ToUniversalTime();
DateTime time2 = new DateTime(0x7b2, 1, 1);
return (int)time.Subtract(time2).TotalSeconds;
}
public static string MapPath(string path = "", bool CreateDirectory = true)
{
if (string.IsNullOrWhiteSpace(path))
{
return System.Windows.Forms.Application.StartupPath.ToString() + "\\";
}
path = Path.Combine(System.Windows.Forms.Application.StartupPath.ToString() + "\\", path);
if (!(!CreateDirectory || Directory.Exists(path)))
{
Directory.CreateDirectory(path);
}
return path;
}
public static string MapFile(string file, string path = "")
{
return Path.Combine(MapPath(path, true), file);
}
public static T ConvertJsonToObj<T>(string str)
{
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var json = serializer.Deserialize<T>(str);
return json;
}
public static string HexToStr(byte[] bytes)
{
//string returnStr = "";
//if (bytes != null)
//{
// for (int i = 0; i < bytes.Length; i++)
// {
// returnStr += bytes[i].ToString("X2");
// }
//}
//return returnStr;
StringBuilder returnStr = new StringBuilder("");
if (bytes != null)
{
for (int i = 0; i < bytes.Length; i++)
{
returnStr.Append(bytes[i].ToString("X2"));
}
}
return returnStr.ToString();
}
public static byte[] StrToHex(string hexString)
{
hexString = hexString.Replace(" ", "");
if ((hexString.Length % 2) != 0)
{
hexString = hexString + " ";
}
byte[] buffer = new byte[hexString.Length / 2];
for (int i = 0; i < buffer.Length; i++)
{
buffer[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 0x10);
}
return buffer;
}
/// <summary>
/// 是否能 Ping 通指定的主机
/// </summary>
/// <param name="ip">ip 地址或主机名或域名</param>
/// <returns>true 通false 不通</returns>
public static bool Ping(string ip)
{
return true;
try
{
System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping();
System.Net.NetworkInformation.PingOptions options = new System.Net.NetworkInformation.PingOptions();
options.DontFragment = true;
string data = "Test Data!";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 1000; // Timeout 时间,单位:毫秒
System.Net.NetworkInformation.PingReply reply = p.Send(ip, timeout, buffer, options);
if (reply.Status == System.Net.NetworkInformation.IPStatus.Success)
return true;
else
return false;
}
catch (Exception)
{
return false;
}
}
public void WriteLog(string msg, string src)
{
try
{
using (StreamWriter sw = File.AppendText(src))
{
sw.WriteLine("消息:" + msg);
sw.WriteLine("时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
sw.WriteLine("**************************************************");
sw.WriteLine();
sw.Flush();
sw.Close();
sw.Dispose();
}
}
catch
{
}
}
public static string GetComputerMD5()
{
string info = FingerPrint.Value() + Dns.GetHostName();
return MD5Encrypt(info, Encoding.UTF8);
}
/// <summary>
/// MD5加密
/// </summary>
/// <param name="input">需要加密的字符串</param>
/// <returns></returns>
public static string MD5Encrypt(string input)
{
return MD5Encrypt(input, new UTF8Encoding());
}
public static int GetTimeTotalSeconds()
{
return GetTimeTotalSeconds(DateTime.Now);
}
public static List<T> GetRandomList<T>(List<T> inputList)
{
//Copy to a array
T[] copyArray = new T[inputList.Count];
inputList.CopyTo(copyArray);
//Add range
List<T> copyList = new List<T>();
copyList.AddRange(copyArray);
//Set outputList and random
List<T> outputList = new List<T>();
Random rd = new Random(DateTime.Now.Millisecond);
while (copyList.Count > 0)
{
//Select an index and item
int rdIndex = rd.Next(0, copyList.Count - 1);
T remove = copyList[rdIndex];
//remove it from copyList and add it to output
copyList.Remove(remove);
outputList.Add(remove);
}
return outputList;
}
public static string GetPublicIpAdress()
{
try
{
return "127.0.0.1";
string html = new WebClient().DownloadString("http://ip.chinaz.com");
var reg = Regex.Match(html, "<dd class=\"fz24\">(.*?)</dd>");
if (reg.Success)
{
return reg.Groups[1].Value;
}
}
catch (Exception) { }
return string.Empty;
}
public static int GetTimeTotalSeconds(DateTime datetime)
{
DateTime time = datetime.ToUniversalTime();
DateTime time2 = new DateTime(0x7b2, 1, 1);
return (int)time.Subtract(time2).TotalSeconds;
}
/// <summary>
/// 域名转换为IP地址
/// </summary>
/// <param name="hostname">域名或IP地址</param>
/// <returns>IP地址</returns>
public static string Hostname2ip(string hostname)
{
try
{
IPAddress ip;
if (IPAddress.TryParse(hostname, out ip))
return ip.ToString();
else
return Dns.GetHostEntry(hostname).AddressList[0].ToString();
}
catch (Exception)
{
throw new Exception("IP Address Error");
}
}
/// <summary>
/// MD5加密
/// </summary>
/// <param name="input">需要加密的字符串</param>
/// <param name="encode">字符的编码</param>
/// <returns></returns>
public static string MD5Encrypt(string input, Encoding encode)
{
if (string.IsNullOrEmpty(input))
{
return null;
}
MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
byte[] data = md5Hasher.ComputeHash(encode.GetBytes(input));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
return sBuilder.ToString();
}
/// <summary>
/// 文件转换成Base64字符串
/// </summary>
/// <param name="fileName">文件绝对路径</param>
/// <returns></returns>
public static String FileToBase64(string fileName)
{
string strRet = "";
try
{
FileStream fs = new FileStream(fileName, FileMode.Open);
byte[] bt = new byte[fs.Length];
fs.Read(bt, 0, bt.Length);
strRet = Convert.ToBase64String(bt);
fs.Close();
}
catch (Exception ex)
{
strRet = null;
}
return strRet;
}
/// <summary>
/// Base64字符串转换成文件
/// </summary>
/// <param name="strInput">base64字符串</param>
/// <param name="fileName">保存文件的绝对路径</param>
/// <returns></returns>
public static bool Base64ToFileAndSave(string strInput, string fileName)
{
bool bTrue = false;
try
{
byte[] buffer = Convert.FromBase64String(strInput);
FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate);
fs.Write(buffer, 0, buffer.Length);
fs.Close();
bTrue = true;
}
catch (Exception ex)
{ }
return bTrue;
}
}
public static class FileTools
{
/// <summary>
/// 图片下载
/// </summary>
/// <param name="url"></param>
/// <param name="path"></param>
public static Image DownloadImage(string url, string path)
{
for (int i = 0; i < 4; i++)
{
if (i < 2)
{
try
{
WebClient mywebclient = new WebClient();
byte[] Bytes = mywebclient.DownloadData(url);
using (MemoryStream ms = new MemoryStream(Bytes))
{
Image outputImg = Image.FromStream(ms);
outputImg.Save(path);
return outputImg;
}
}
catch (Exception ex)
{ }
}
else
{
try
{
var http = new HttpHelper();
var item = http.GetItem(url);
item.ReadWriteTimeout = 10000;
var image = http.GetImage(item);
image.Save(path);
return image;
}
catch (Exception ex)
{ }
}
}
return null;
}
/// <summary>
/// 文件MD5校验
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
public static string GetMD5Hash(string pathName)
{
string strResult = "";
string strHashData = "";
byte[] arrbytHashValue;
FileStream oFileStream = null;
MD5CryptoServiceProvider oMD5Hasher = new System.Security.Cryptography.MD5CryptoServiceProvider();
try
{
oFileStream = new FileStream(pathName, System.IO.FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
arrbytHashValue = oMD5Hasher.ComputeHash(oFileStream);//计算指定Stream 对象的哈希值
                oFileStream.Close();
                //由以连字符分隔的十六进制对构成的String其中每一对表示value 中对应的元素例如“F-2C-4A”
                strHashData = BitConverter.ToString(arrbytHashValue);
                //替换-
                strHashData = strHashData.Replace("-", "");
strResult = strHashData;
}
catch (System.Exception ex)
{ }
return strResult;
}
/// <summary>
/// 设置缓存
/// </summary>
/// <param name="robotname"></param>
/// <param name="username"></param>
/// <param name="text"></param>
/// <returns></returns>
public static bool SetCacheObj(string k, object v, int m = 10)
{
try
{
Cache cache = HttpRuntime.Cache;
//查找 md5 的缓存,不存在则返回null
object item = cache[k];
if (item == null)
cache.Insert(k, v, null, DateTime.Now.AddMinutes(m), System.Web.Caching.Cache.NoSlidingExpiration);
return true;
}
catch (Exception ex)
{ }
return false;
}
/// <summary>
/// 缓存是否存在
/// </summary>
/// <param name="robotname"></param>
/// <param name="username"></param>
/// <param name="text"></param>
/// <returns></returns>
public static object GetCacheObj(string k)
{
try
{
Cache cache = HttpRuntime.Cache;
return cache[k];
}
catch (Exception)
{ }
return null;
}
}
}