38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System.Security.Cryptography;
 | 
						|
using System.Text;
 | 
						|
 | 
						|
namespace APT.Utility
 | 
						|
{
 | 
						|
    public static partial class PolyvSignatureHelper
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// 生成保利威API所需的SHA1签名
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="secretKey">保利威提供的secretkey</param>
 | 
						|
        /// <param name="paramsStr">参与签名的参数字符串</param>
 | 
						|
        /// <returns>SHA1签名结果</returns>
 | 
						|
        public static string GenerateSha1Signature(string signStr)
 | 
						|
        {
 | 
						|
            // 1. 将secretkey和参数字符串拼接
 | 
						|
            //string signStr = secretKey + paramsStr;
 | 
						|
 | 
						|
            // 2. 创建SHA1实例
 | 
						|
            using (SHA1 sha1 = SHA1.Create())
 | 
						|
            {
 | 
						|
                // 3. 将字符串转换为字节数组
 | 
						|
                byte[] bytes = Encoding.UTF8.GetBytes(signStr);
 | 
						|
 | 
						|
                // 4. 计算哈希值
 | 
						|
                byte[] hashBytes = sha1.ComputeHash(bytes);
 | 
						|
 | 
						|
                // 5. 将字节数组转换为十六进制字符串
 | 
						|
                StringBuilder sb = new StringBuilder();
 | 
						|
                foreach (byte b in hashBytes)
 | 
						|
                {
 | 
						|
                    sb.AppendFormat("{0:x2}", b);
 | 
						|
                }
 | 
						|
                return sb.ToString().ToUpper();
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |