千家信息网

python中生成签名的示例分析

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,今天就跟大家聊聊有关python中生成签名的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。/// /// 获取签名 /// pub
千家信息网最后更新 2025年01月18日python中生成签名的示例分析

今天就跟大家聊聊有关python中生成签名的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

///

/// 获取签名 /// public string Sign(object body) { //获取所有属性 var signKeys = new Dictionary(); GetSignKeys(null, body, signKeys);

        var lstSignKeys = signKeys.ToList();        var indexReg = new System.Text.RegularExpressions.Regex("\\[(\\d)\\]");        lstSignKeys.Sort((v1, v2) =>        {            var keyRepair1 = indexReg.Replace(v1.Key, "[0$1]");            var keyRepair2 = indexReg.Replace(v2.Key, "[0$1]");            return string.CompareOrdinal(keyRepair1, keyRepair2);        });        var signStr = lstSignKeys.Join("&", t => $"{t.Key}={t.Value}");        signStr += $"&key={ThirdPlatServiceAPPKey}";        return getSign(signStr, ThirdPlatServiceAPPKey);    }    public string getSign(string stringSignTemp, string apikey)    {        string sign = SecurityHelper.MD5Encrypt(stringSignTemp, Encoding.UTF8);        sign = SecurityHelper.HMACSHA256Encrypt(sign, apikey, Encoding.UTF8).ToLower();        return sign;    }    private void GetSignKeys(string Key, object obj, Dictionary signKeys)    {        if (obj == null)            return;        if (obj is string && !string.IsNullOrEmpty(obj.ToString())) signKeys.Add(Key, obj.ToString());        else if (obj is double dbl) signKeys.Add(Key, dbl.ToString("0.00"));        else if (obj is decimal dec) signKeys.Add(Key, dec.ToString("0.00"));        else if (obj.GetType().IsValueType) signKeys.Add(Key, obj.ToString());        else if (obj is IList lst)        {            //列表 对象            var index = -1;            foreach (var item in lst)            {                index++;                GetSignKeys($"{Key}[{index}]", item, signKeys);            }        }        else        {            if (!string.IsNullOrEmpty(obj.ToString()))            {                if (string.IsNullOrEmpty(Key))                {                    foreach (var property in obj.GetType().GetProperties())                    {                        GetSignKeys(property.Name, property.GetValue(obj, null), signKeys);                    }                }                else                {                    foreach (var property in obj.GetType().GetProperties())                    {                        GetSignKeys(Key + "." + property.Name, property.GetValue(obj, null), signKeys);                    }                }            }        }    }

看完上述内容,你们对python中生成签名的示例分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

0