根據時間戳及密鑰判斷當前token值是否有效

須要的方法:c#

/// <summary>
/// 將c# DateTime時間格式轉換爲Unix時間戳格式
/// </summary>
/// <param name="time">時間</param>
/// <returns>double</returns>
public static double ConvertDateTimeToTimeStamp()
{
double intResult = 0;
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
intResult = (DateTime.Now - startTime).TotalSeconds;
return intResult;
}加密

/// <summary>
/// 毫秒時間戳
/// </summary>
/// <returns></returns>
public static double TimeSpanByTotalMilliseconds()
{
return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000;
}spa

傳入參數 :{"TimeStampRange":"時間戳","sign":"簽名"}  協商的固定參數:SignKey:密鑰string

string plan=thirdLogin.Unionid + thirdLogin.TimeStampRange.ToString() + SignKey;io

if (EncrypHelper.GetMD5(plan) != thirdLogin.Sign || (Math.Abs(TimeHelper.TimeSpanByTotalMilliseconds() - thirdLogin.TimeStampRange) > 300000)){}rsa

1.將用戶標識列,時間戳和密鑰拼接的字段進行MD5加密,判斷傳入的sign是否正確nio

2.判斷傳入的時間戳是否超過了10分鐘,精確到毫秒。方法

註釋:Math.Abs獲取其絕對值im

相關文章
相關標籤/搜索