一次性加密


后台管理接入管理功能添加客户区分,自定义名称,设置并发数(0表示不限制并发数),开启OneTimeToken。生成的客户凭证如下图所示,默认未开启加密访问的功能(即客户端接入凭证的密钥为空)
invalid image (图片无法加载)
当想要开启加密,点击更多,生成客户端秘钥。使用appKey和appSecret生成签名、加上timestamp参数、appKey参数方可进入应用。开启一次性校验后,签名参数只能使用一次。例如您复制生成的最终公开分享的 URL 地址,在使用之后就会过期,这时只有通过重新计算签名参数来生成新的 URL 地址才能访问
invalid image (图片无法加载)
默认设置了客户端凭证验证密钥,页面提示“权限不足”,表示您的访问被拒绝了。 如果想要打开页面,需要完成以下步骤:

添加应用时选择相应所属的接入凭证
记录接入管理中对应的appKey和appSecret
将appKey和appSecret和当前时间戳(long型数值)按字母序排序,然后进行SHA-1摘要签名,示例代码最后附上
将时间和加密后的签名分别命名为timestamp , signature
将appKey,timestamp, signature参数放入 URL 的 querystring 中。适用于进入应用接口(/appli/start、 /appli/getStartURL),以及获取列表接口(/appli/getAppliList)切忌不要带上appSecret,否则密钥将泄露。

java
java代码示例
public static String getSignature( String key, String secret, String timestamp){
String[] arr = new String[] { key, secret, timestamp };
        // appKey、appSecret、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
PHP代码示例
// 排序
sort($arr, SORT_NATURAL);
$string = implode('', $arr);
$signature = sha1($string);

admin 2025年11月14日 14:21 收藏文档

开发者交流群

QQ群号:1011308692