<commit_before>---
layout: post
title: URL签名
---

## 概述

URL签名是将请求参数串以及APP密钥根据一定签名算法生成的签名值，作为新的请求参数以提高访问过程中的防篡改性。
 

## 签名算法

1. 对除app_key以外的所有请求参数进行字典升序排列
2. 将以上排序后的参数表进行字符串连接，如key1value1key2value2key3value3...keyNvalueN
3. 将app_key作为前缀，将app_secret作为后缀，对该字符串进行SHA-1计算，并转换成16进制编码
4. 转换为全大写形式后即获得签名串
 
签名串获得后，将其作为sign参数附加到对应的URL中。 <commit_msg>更新URL签名算法<commit_after>---
layout: post
title: URL签名算法
---

## 概述

URL签名是将请求参数串以及APP密钥根据一定签名算法生成的签名值，作为新的请求参数以提高访问过程中的防篡改性。
 

## 签名算法

1. 对除app_key以外的所有请求参数进行字典升序排列
2. 将以上排序后的参数表进行字符串连接，如key1value1key2value2key3value3...keyNvalueN
3. 将app_key作为前缀，将app_secret作为后缀，对该字符串进行SHA-1计算，并转换成16进制编码
4. 转换为全大写形式后即获得签名串
 
签名串获得后，将其作为sign参数附加到对应的URL中。 
{'fraction_non_alphanumeric': 0.09090909090909091, 'fraction_numerical': 0.03812316715542522, 'mean_word_length': 7.035294117647059, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '216813', 'n_tokens_mistral': 510, 'n_tokens_neox': 588, 'n_words': 34}