mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2026-03-10 00:13:36 +08:00
feat(wxapi): 完成 SHA-1、HMAC-SHA-256 工具类
This commit is contained in:
@@ -0,0 +1,44 @@
|
|||||||
|
using System;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace SKIT.FlurlHttpClient.Wechat.Api.Utilities
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// HMAC-SHA-1 算法工具类。
|
||||||
|
/// </summary>
|
||||||
|
public static class HmacSha256Util
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 获取信息摘要。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="secretBytes">密钥字节数组。</param>
|
||||||
|
/// <param name="bytes">信息字节数组。</param>
|
||||||
|
/// <returns>信息摘要。</returns>
|
||||||
|
public static string Hash(byte[] secretBytes, byte[] bytes)
|
||||||
|
{
|
||||||
|
if (secretBytes == null) throw new ArgumentNullException(nameof(secretBytes));
|
||||||
|
if (bytes == null) throw new ArgumentNullException(nameof(bytes));
|
||||||
|
|
||||||
|
using HMAC hmac = new HMACSHA256(secretBytes);
|
||||||
|
byte[] hashBytes = hmac.ComputeHash(bytes);
|
||||||
|
return BitConverter.ToString(hashBytes).Replace("-", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取信息摘要。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="secret">密钥。</param>
|
||||||
|
/// <param name="message">文本信息。</param>
|
||||||
|
/// <returns>信息摘要。</returns>
|
||||||
|
public static string Hash(string secret, string message)
|
||||||
|
{
|
||||||
|
if (secret == null) throw new ArgumentNullException(nameof(secret));
|
||||||
|
if (message == null) throw new ArgumentNullException(nameof(message));
|
||||||
|
|
||||||
|
byte[] secretBytes = Encoding.UTF8.GetBytes(secret);
|
||||||
|
byte[] bytes = Encoding.UTF8.GetBytes(message);
|
||||||
|
return Hash(secretBytes, bytes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
39
src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/Sha1Util.cs
Normal file
39
src/SKIT.FlurlHttpClient.Wechat.Api/Utilities/Sha1Util.cs
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
using System;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace SKIT.FlurlHttpClient.Wechat.Api.Utilities
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// SHA-1 算法工具类。
|
||||||
|
/// </summary>
|
||||||
|
public static class Sha1Util
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 获取信息摘要。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="bytes">信息字节数组。</param>
|
||||||
|
/// <returns>信息摘要。</returns>
|
||||||
|
public static string Hash(byte[] bytes)
|
||||||
|
{
|
||||||
|
if (bytes == null) throw new ArgumentNullException(nameof(bytes));
|
||||||
|
|
||||||
|
using SHA1 sha = SHA1.Create();
|
||||||
|
byte[] hashBytes = sha.ComputeHash(bytes);
|
||||||
|
return BitConverter.ToString(hashBytes).Replace("-", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取信息摘要。
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="message">文本信息。</param>
|
||||||
|
/// <returns>信息摘要。</returns>
|
||||||
|
public static string Hash(string message)
|
||||||
|
{
|
||||||
|
if (message == null) throw new ArgumentNullException(nameof(message));
|
||||||
|
|
||||||
|
byte[] bytes = Encoding.UTF8.GetBytes(message);
|
||||||
|
return Hash(bytes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user