Files
simapi-net/Helpers/SimApiUtil.cs
T

75 lines
2.3 KiB
C#
Raw Normal View History

2022-05-18 20:15:25 +08:00
using System;
using System.Security.Cryptography;
2019-12-23 16:32:06 +08:00
using System.Text;
2022-05-16 11:26:42 +08:00
using System.Text.Encodings.Web;
using System.Text.Json;
2023-10-23 17:39:27 +08:00
using System.Text.Json.Serialization;
2019-12-23 16:32:06 +08:00
using System.Text.RegularExpressions;
2022-05-16 11:26:42 +08:00
using System.Text.Unicode;
2019-12-23 16:32:06 +08:00
2020-08-23 19:51:37 +08:00
namespace SimApi.Helpers
2019-12-23 16:32:06 +08:00
{
2020-08-05 15:29:56 +08:00
public static class SimApiUtil
2019-12-23 16:32:06 +08:00
{
2022-05-19 01:41:09 +08:00
/// <summary>
/// 当前CST时间
/// </summary>
2023-10-23 17:39:27 +08:00
public static DateTime CstNow => DateTime.UtcNow.AddHours(8);
/// <summary>
/// JSON序列化常规选项
/// </summary>
public static JsonSerializerOptions JsonOption => new()
{
2023-10-23 17:39:27 +08:00
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All),
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
};
2022-05-19 01:41:09 +08:00
/// <summary>
/// 当前秒级时间戳
/// </summary>
2023-10-23 17:39:27 +08:00
public static double TimestampNow => (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds;
2022-05-19 01:41:09 +08:00
2019-12-23 16:32:06 +08:00
/// <summary>
/// 检测手机号是否正确
/// </summary>
/// <param name="cell">手机号码</param>
/// <returns></returns>
public static bool CheckCell(string cell)
{
2021-09-26 13:11:22 +08:00
var regex = new Regex("^1[3456789]\\d{9}$");
2019-12-23 16:32:06 +08:00
return regex.IsMatch(cell);
}
/// <summary>
/// MD5加密字符串
/// </summary>
/// <param name="source">源字符串</param>
/// <param name="mode">加密结果"x2"结果为32位,"x3"结果为48位,"x4"结果为64位</param>
/// <returns></returns>
public static string Md5(string source, string mode = "x2")
{
2023-10-23 17:39:27 +08:00
var sor = Encoding.UTF8.GetBytes(source);
var md5 = MD5.Create();
var result = md5.ComputeHash(sor);
var strbul = new StringBuilder(40);
foreach (var t in result)
2019-12-23 16:32:06 +08:00
{
2023-10-23 17:39:27 +08:00
strbul.Append(t.ToString(mode));
2019-12-23 16:32:06 +08:00
}
return strbul.ToString();
}
2022-05-16 11:26:42 +08:00
/// <summary>
/// 将对象序列化成JSON (控制台输出中文不会被编码)
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static string Json(object obj)
{
2023-10-23 17:39:27 +08:00
return JsonSerializer.Serialize(obj, JsonOption);
2022-05-16 11:26:42 +08:00
}
2019-12-23 16:32:06 +08:00
}
}