#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved. @AUTHOR: ASJRD018 @NAME: Ansjer @software: PyCharm @DATE: 2018/6/8 15:22 @Version: python3.6 @MODIFY DECORD:ansjer dev @file: encryHlsVodUrl.py @Contact: chanjunkai@163.com """ # coding=utf-8 # + + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + + # ┏┓   ┏┓+ + #    ┏┛┻━━━┛┻┓ + + #    ┃       ┃   #    ┃   ━   ┃ ++ + + + #    ████━████ ┃+ #    ┃       ┃ + #    ┃   ┻   ┃ #    ┃       ┃ + + #    ┗━┓   ┏━┛ #      ┃   ┃            #      ┃   ┃ + + + + #      ┃   ┃    Codes are far away from bugs with the animal protecting    #      ┃   ┃ +     神兽保佑,代码无bug   #      ┃   ┃ #      ┃   ┃  +          #      ┃    ┗━━━┓ + + #      ┃        ┣┓ #      ┃        ┏┛ #      ┗┓┓┏━┳┓┏┛ + + + + #       ┃┫┫ ┃┫┫ #       ┗┻┛ ┗┻┛+ + + + # + + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + +""" """ """ import base64 import hashlib import time def md5(text, isBackByte=False): """md5加密函数""" md5 = hashlib.md5() if isinstance(text, bytes): md5.update(text) else: md5.update(text.encode('utf-8')) if isBackByte: # 返回二进制的加密结果 return md5.digest() # 返回十六进制的机密结果 return md5.hexdigest() def base64_encode(text, isBytes=False): """进行base64编码处理""" if isBytes: return base64.b64encode(text) return base64.b64encode(bytes(text, encoding="utf-8")) def get_timestamp10(): """获取当前时间长度为10位长度的时间戳""" return int(time.time()) def getSignUrl(path): secret = 'ansjer'; # 密钥--对应#st的哈希格式为 secret+url+e,e为时间戳单位s,url为请求地址 secure_link_md5 xiaozhong.com$uri$arg_e; # 下载到期时间,time是当前时间,300表示300秒,也就是说从现在到300秒之内文件不过期 expire = get_timestamp10() + 1800; res = md5(str(secret) + str(path) + str(expire), True) md5str = str(base64_encode(res, True)) md5st = md5str.replace('b\'', '').replace('\'', '').replace('+', '-').replace('/', '_').replace('=', '') url = 'http://52.8.197.107'+path+'.m3u8?' + 'st=' + str(md5st) + '&e=' + str(expire) return url # print('生成代相关认证签名的地址:','http://192.168.136.45:8384/hls/5553.mp4/index.m3u8?' + 'st=' + str(md5) + '&e=' + str(expire)) # print('生成代相关认证签名的地址:','http://52.8.197.107/444.mp4.m3u8?' + 'st=' + str(md5) + '&e=' + str(expire)) # print('生成代相关认证签名的地址:','http://d3puj5e5oiunfy.cloudfront.net/444.mp4.m3u8?' + 'st=' + str(md5) + '&e=' + str(expire))