using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace ViewModels { public class Tools { private static byte[] Keys = { 0xEF, 0xAB, 0x56, 0x78, 0x90, 0x34, 0xCD, 0x12 }; public static string encryptKey = "20su#pe1r%boolive"; /// /// DES加密字符串 /// /// 待加密的字符串 /// 加密密钥,要求为8位 /// 加密成功返回加密后的字符串,失败返回源串 public static string EncryptString(string encryptString) { try { byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); byte[] rgbIV = Keys; byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); var dCSP = new DESCryptoServiceProvider(); using MemoryStream mStream = new MemoryStream(); using CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Convert.ToBase64String(mStream.ToArray()); } catch { return encryptString; } } /// /// DES解密字符串 /// /// 待解密的字符串 /// 解密密钥,要求为8位,和加密密钥相同 /// 解密成功返回解密后的字符串,失败返源串 public static string DecryptString(string decryptString) { try { byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); byte[] rgbIV = Keys; byte[] inputByteArray = Convert.FromBase64String(decryptString); var DCSP = new DESCryptoServiceProvider(); using MemoryStream mStream = new MemoryStream(); using CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Encoding.UTF8.GetString(mStream.ToArray()); } catch { return decryptString; } } public static string HashPassword(string pwd) { string v = CryptoHelper.Crypto.HashPassword(pwd); return v; } public static bool VerifyHashedPassword(string encrypwd, string original_pwd) { bool v = CryptoHelper.Crypto.VerifyHashedPassword(encrypwd, original_pwd); return v; } /// /// 时间戳转本地时间-时间戳精确到秒 /// public static DateTime ToLocalTimeDateBySeconds(long unix) { var dto = DateTimeOffset.FromUnixTimeSeconds(unix); return dto.ToLocalTime().DateTime; } /// /// 时间转时间戳Unix-时间戳精确到秒 /// public static long ToUnixTimestampBySeconds(DateTime dt) { DateTimeOffset dto = new DateTimeOffset(dt); return dto.ToUnixTimeSeconds(); } /// /// 时间戳转本地时间-时间戳精确到毫秒 /// public static DateTime ToLocalTimeDateByMilliseconds(long unix) { var dto = DateTimeOffset.FromUnixTimeMilliseconds(unix); return dto.ToLocalTime().DateTime; } /// /// 时间转时间戳Unix-时间戳精确到毫秒 /// public static long ToUnixTimestampByMilliseconds(DateTime dt) { DateTimeOffset dto = new DateTimeOffset(dt); return dto.ToUnixTimeMilliseconds(); } } }