前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >智能图像签名生成脚本

智能图像签名生成脚本

原创
作者头像
杜志强
发布2019-03-21 16:48:12
8940
发布2019-03-21 16:48:12
举报
文章被收录于专栏:Mr_duMr_du

参考签名文档:

https://cloud.tencent.com/document/product/867/17719


代码示例:

python3:

代码语言:python
复制
import time
import random
import hmac
import hashlib
import binascii
import base64

class Auth(object):
    def __init__(self, appid, sid, skey):
        self._appid, self._secretid, self._secretkey = str(appid), str(sid), str(skey)

    def get_sign(self, bucket, howlong=864000):
        """ GET REUSABLE SIGN

        :param bucket: 图片处理所使用的 bucket
        :param howlong: 签名的有效时长,单位 秒

        :return: 签名字符串
        """

        if howlong <= 0:
            raise Exception('Param howlong must be great than 0')

        now = int(time.time())
        rdm = random.randint(0, 999999999)

        text = 'a=' + self._appid + '&b=' + bucket + '&k=' + self._secretid + '&e=' + str(now + howlong) + '&t=' + str(
            now) + '&r=' + str(rdm) + '&f='
        hexstring = hmac.new(self._secretkey.encode('utf-8'), text.encode('utf-8'), hashlib.sha1).hexdigest()
        binstring = binascii.unhexlify(hexstring)
        return base64.b64encode(binstring + text.encode('utf-8')).rstrip(),text

if __name__ == '__main__':
    a = Auth('125xxxxx','AKIDxxxxxxxxxxxx','3JXxxxxxxxxxxxxx') ## API密钥获取https://console.cloud.tencent.com/cam/capi
    sign,text = a.get_sign('person-check')
    print("签名(使用单引号中间的部分):",sign)

php:

代码语言:php
复制
<?php 
$appid = "YOUR APPID_ID"; 
$secret_id = "YOUR SECRET_ID"; 
$secret_key = "YOUR SECRET_KEY"; 
$expired = time() + 2592000; 
$onceExpired = 0; 
$current = time(); 
$rdm = rand(); 
$userid = "0"; 
$fileid = "tencentyunSignTest";

$srcStr = 'a='.$appid.'&b='.$bucket.'&k='.$secret_id.'&e='.$expired.'&t='.$current.'&r='.$rdm.'&f=';

$srcWithFile = 'a='.$appid.'&b='.$bucket.'&k='.$secret_id.'&e='.$expired.'&t='.$current.'&r='.$rdm.'&f='.$fileid;

$srcStrOnce= 'a='.$appid.'&b='.$bucket.'&k='.$secret_id.'&e='.$onceExpired .'&t='.$current.'&r='.$rdm 
.'&f='.$fileid;

$signStr = base64_encode(hash_hmac('SHA1', $srcStr, $secret_key, true).$srcStr);

$srcWithFile = base64_encode(hash_hmac('SHA1', $srcWithFile , $secret_key, true).$srcWithFile );

$signStrOnce = base64_encode(hash_hmac('SHA1',$srcStrOnce,$secret_key, true).$srcStrOnce);

echo $signStr."\n";

?>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图片处理
图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档