一、SN 签名简介
1、SN 签名是什么
SN 权限签名是百度地图 API 的一种安全验证机制,用于确认请求是否合法。通过为每个请求生成唯一签名,可以有效防止未经授权的访问和滥用。在早期的接口调用中,我们通常仅使用 AK(Access Key)进行认证,但为了更高的安全性,现在建议启用 SN 校验。
以地点检索服务为例,若开发者所用 AK 的校验方式设置为 SN 校验,则请求参数中必须包含 sn 和 timestamp。
| 参数 | 说明 | 类型 | 必填 |
|---|---|---|---|
| sn | 开发者的权限签名 | string(50) | 是 |
| timestamp | 设置 sn 后该值必填 | string(50) | 是 |
2、如何开启 SN 签名
登录百度地图开放平台控制台,进入应用列表。为避免影响现有应用,建议新建一个应用。
点击'创建应用',填写应用名称、类型(注意服务端 AK 与浏览器端 AK 的区别)、启用服务及请求校验方式。在'请求校验方式'中选择'SN 校验'。提交后,请务必备存生成的 SK(Secret Key),后续签名计算将用到它。

3、SN 签名算法
SN 的计算依赖于参数的顺序。GET 请求建议使用 LinkedHashMap 保存键值对以保持插入顺序;POST 请求则可用 TreeMap 自动排序。核心逻辑是将参数按特定顺序拼接,加上 SK,再进行 MD5 加密。
以检索接口 V2 版本为例:
https://api.map.baidu.com/place/v2/search?
请求参数示例:
String query = "36";
String region = "158"; // 158 表示长沙市
String scope = "2";
String output = "json";
String ;
;
;




