SN 签名简介
1、SN 签名是什么
SN 权限签名是一种安全机制,用于验证应用对百度地图 API 的访问请求是否合法。通过为每个请求生成唯一的签名,百度地图能够有效防止未经授权的访问和滥用。
在调用服务时必须要携带 AK 在每次服务调用时进行访问请求。以地点检索服务为例,关键参数如下表所示:
| sn | 开发者的权限签名。sn 校验说明 | string(50) | 可选,若开发者所用 AK 的校验方式为 SN 校验时该参数必须。 | timestamp | 设置 sn 后该值必填。 | string(50) | 设置 sn 后该值必填。
2、如何开启 SN 签名
登录百度地图开发者平台,进入控制台。创建新应用,填写应用名称、应用类型(服务端 AK 不再支持浏览器端使用;浏览器端使用请选择'浏览器端 AK')、启用服务、请求校验方式(默认是使用 IP 限制,这里选择 SN 校验)。

点击创建应用后,按要求填写信息并提交。请记住这里的 SK,在后面的签名中还会使用到。


3、SN 签名算法
计算 sn 跟参数对出现顺序有关,get 请求请使用 LinkedHashMap 保存<key,value>,该方法根据 key 的插入顺序排序;post 请使用 TreeMap 保存<key,value>,该方法会自动将 key 按照字母 a-z 顺序排序。
开发者会根据自己的应用 SK 和 AK,加上请求参数生成一个 SN,然后将请求发送到服务端,如果两者匹配,请求返回,反之会报 APP SN 校验失败。
请求接口是 V2 版本的检索接口,地址如下:
https://api.map.baidu.com/place/v2/search?
请求的参数如下:
String query = "36";
String region = "158"; // 158 表示长沙市
String scope = "2";
String output = "json";
;
;
;




