开发者平台如何进行二次开发?

admin
产品文档 浏览量: 0
2022-03-15
              1.  登录到开发者平台,打开“账号--安全设置--秘钥管理”,拿到Key和Secret
              2.  使用Key和Secret生成签名,传递到接口参数中,生成签名方式如下:

1、将Key和Secret和当前时间戳(long型数值)按字母序排序,然后进行SHA-1摘要签名,示例代码最后附上
2、将时间和加密后的签名分别命名为timestamp , signature
3、将Key,timestamp, signature参数放入 URL 的 querystring 中。切忌不要带上Secret,否则密钥将泄露。

java代码示例
public static String getSignature( String key, String secret, String timestamp){
String[] arr = new String[] { key, secret, timestamp };
// Key、Secret、timestamp三个参数进行字典序排序
Arrays.sort(arr);
StringBuilder sb = new StringBuilder();
//将三个参数字符串拼接成一个字符串
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i]);
}
MessageDigest md;
String signature = null;
try {
md = MessageDigest.getInstance("SHA-1");
// 进行sha1摘要
byte[] digest = md.digest(sb.toString().getBytes());
signature = byteToStr(digest);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return signature;
}
/**
* 将字节数组转换为十六进制字符串
*
* @param byteArray
* @return
*/
private static String byteToStr(byte[] byteArray) {
String strDigest = "";
for (int i = 0; i < byteArray.length; i++) {
strDigest += byteToHexStr(byteArray[i]);
}
return strDigest;
}
/**
* 将字节转换为十六进制字符串
*
* @param mByte
* @return
*/
private static String byteToHexStr(byte mByte) {
char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
char[] tempArr = new char[2];
tempArr[0] = Digit[(mByte >>> 4) & 0X0F];
tempArr[1] = Digit[mByte & 0X0F];
String s = new String(tempArr);
return s;
}


PHP代码示例
// 排序
sort($arr, SORT_NATURAL);
$string = implode('', $arr);
$signature = sha1($string);

 

0条评论
提问推荐
单机部署在A服务器,在B服务器Nginx做反向代理的配置要代理哪些端口 管理后台
回答1
TaskId怎么获取? Web客户端
回答2
LarkXR 单机版 部署 导致远程桌面无法连接 产品部署
回答1
专栏推荐
VisionPro如何开启WebXR 官方公告
2024-04-17
忘记密码/重置密码方法 安全设置
2024-03-22
在云渲染直接使用WebGL应用--2D共享模式 官方公告
2024-01-29
关注我们
邮箱:support@pingxingyun.com
热线:400-678-1024

©2016-2031 pingxingyun.com All Rights Reserved