首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >usersig 生成算法纯 python 实现?

usersig 生成算法纯 python 实现?

提问于 2016-11-02 15:22:57
回答 1关注 0查看 694
代码语言:txt
AI代码解释
复制
#! /usr/bin/python# coding:utf-8# 此文件是 tls sig api 的 python 另一种实现# 使用了 python ecdsa 开发库__author__ = "tls@tencent.com"__date__ = "$Oct 2, 2016 11`17`43 PM"import OpenSSLimport base64import zlibimport jsonimport time# python ecdsa 开发库请到 https://github.com/warner/python-ecdsa# 或者 tls 技术支持分享的链接 http://share.weiyun.com/24b674bced4f84ecbbe6a7945738b9f4# 下载,下载完毕之后进入其根目录,运行下面的命令进行安装,# python **p.py install# ubuntu 用户可能需要添加 sudo# 由于 python ecdsa 这个开发库仅支持 ec 格式的私钥,从腾讯云下载的私钥格式是# pk #8 的格式,需要使用 openssl 命令进行转换,或者使用我们工具包中的 openssl 进行转换# 下面是转换命令# openssl ec -outform PEM -inform PEM -in private.pem -out private_ec.pem# -in 后面的传入下载的私钥 -out 后面是转换后的私钥文件from ecdsa import SigningKey,utilimport hashlib# 这里请填写应用自己的私钥ecdsa_pri_key = """请填上应用自己的私钥"""def base64_encode_url(data): base64_data = base64.b64encode(data) base64_data = base64_data.replace('+', '*') base64_data = base64_data.replace('/', '-') base64_data = base64_data.replace('=', '_') return base64_datadef base64_decode_url(base64_data): base64_data = base64_data.replace('*', '+') base64_data = base64_data.replace('-', '/') base64_data = base64_data.replace('_', '=') raw_data = base64.b64decode(base64_data) return raw_dataclass TLSSigAPI: """"""  __acctype = 0 __identifier = "" __appid3rd = "" __sdkappid = 0 __version = 20151204 __expire = 3600*24*30    # 默认一个月,需要调整请自行修改 __pri_key = "" __pub_key = "" _err_msg = "ok"  def __get_pri_key(self):  return self.__pri_key_loaded def __init__(self, sdkappid, pri_key):  self.__sdkappid = sdkappid  self.__pri_key = pri_key  self.__pri_key_loaded = SigningKey.from_pem(self.__pri_key) def __create_dict(self):  m = {}  m["TLS.account_type"] = "%d" % self.__acctype  m["TLS.identifier"] = "%s" % self.__identifier  m["TLS.appid_at_3rd"] = "%s" % self.__appid3rd  m["TLS.sdk_appid"] = "%d" % self.__sdkappid  m["TLS.expire_after"] = "%d" % self.__expire  m["TLS.version"] = "%d" % self.__version  m["TLS.time"] = "%d" % time.time()  return m def __encode_to_fix_str(self, m):  fix_str = "TLS.appid_at_3rd:"+m["TLS.appid_at_3rd"]+"\n" \      +"TLS.account_type:"+m["TLS.account_type"]+"\n" \      +"TLS.identifier:"+m["TLS.identifier"]+"\n" \      +"TLS.sdk_appid:"+m["TLS.sdk_appid"]+"\n" \      +"TLS.time:"+m["TLS.time"]+"\n" \      +"TLS.expire_after:"+m["TLS.expire_after"]+"\n"  return fix_str def tls_gen_sig(self, identifier):  self.__identifier = identifier  m = self.__create_dict()  fix_str = self.__encode_to_fix_str(m)  pk_loaded = self.__get_pri_key()  sig_field = pk_loaded.sign(fix_str, hashfunc=hashlib.sha256, sigencode=util.sigencode_der)  sig_field_base64 = base64.b64encode(sig_field)  m["TLS.sig"] = sig_field_base64  json_str = json.dumps(m)  sig_cmpressed = zlib.compress(json_str)  base64_sig = base64_encode_url(sig_cmpressed)  return base64_sig def main(): api = TLSSigAPI(1400001052, ecdsa_pri_key) sig = api.tls_gen_sig("xiaojun") print sigif __name__ == "__main__": main()

回答 1

kaifazhe

发布于 2016-12-16 05:47:22

用代码生成的sig再用工具检验一直是失败

F: ls_sig_api-windows-64 ools>tls_licence_tools.exe verify public_key.pem sig_test 1400021429 zhengyufei

check sig faild: check_licence failed iRet:-2

cmd verify return -5

和开发者交流更多问题细节吧,去 写回答
相关文章
数学推导+纯Python实现机器学习算法19:CatBoost
本文介绍GBDT系列的最后一个强大的工程实现模型——CatBoost。CatBoost与XGBoost、LightGBM并称为GBDT框架下三大主流模型。CatBoost是俄罗斯搜索巨头公司Yandex于2017年开源出来的一款GBDT计算框架,因其能够高效处理数据中的类别特征而取名为CatBoost(Categorical+Boosting)。相较于XGBoost和LightGBM,CatBoost的主要创新点在于类别特征处理和排序提升(Ordered Boosting)。
石晓文
2020/07/16
1.9K0
数学推导+纯Python实现机器学习算法19:CatBoost
使用 LetterAvatar 实现纯前端生成字母头像
偶然发现码云上有个非常人性化的细节:会自动给没头像的用户生成一个昵称首字符的彩色头像,关键是打开控制台一看,发现这头像居然还是在前端实时生成的 这就很有意思了!
王图思睿
2021/06/16
2.3K0
纯前端json数据生成excel下载的实现
引入工具 本项目是使用vue2.0的后端项目, 用的ES6的模块化语法。 file-saver npm install file-saver --save-dev // 在文件中引入并使用并触发下载的model。 import { saveAs } from 'file-saver'; saveAs(new Blob([],{}), name); 另存为CSV格式的文件 本质流程是将json数据转换为对应csv格式 在excel表格里面展现出来。关键点如下: csv的分隔符规定: 逗号是单元格之间的分隔
卡少
2018/05/16
1.6K0
纯Python 实现 Word 文档转换 Markdown
随着 SaaS 服务的流行,越来越多的人选择在各个平台线上编写文档,制作表格并进行分享。
州的先生
2021/01/05
6.6K0
纯Python 实现 Word 文档转换 Markdown
Python算法揭秘:最小生成树算法的奥秘与实现策略
最小生成树算法用于在一个连通加权无向图中找到一个生成树,使得生成树的所有边的权重之和最小。最小生成树问题在许多实际应用中都有重要的作用,例如网络设计、电力传输等。
测试开发囤货
2023/08/08
3430
Python算法揭秘:最小生成树算法的奥秘与实现策略
【机器学习基础】数学推导+纯Python实现机器学习算法6:感知机
今天笔者要实现的机器学习算法是感知机(perceptron)。感知机是一种较为简单的二分类模型,但由简至繁,感知机却是神经网络和支持向量机的基础。感知机旨在学习能够将输入数据划分为+1/-1的线性分离超平面,所以说整体而言感知机是一种线性模型。因为是线性模型,所以感知机的原理并不复杂,本节笔者就和大家来看一下感知机的基本原理和Python实现。
黄博的机器学习圈子
2020/06/21
8030
【机器学习基础】数学推导+纯Python实现机器学习算法26:随机森林
自从第14篇文章结束,所有的单模型基本就讲完了。而后我们进入了集成学习的系列,整整花了5篇文章的篇幅来介绍集成学习中最具代表性的Boosting框架。从AdaBoost到GBDT系列,对XGBoost、LightGBM和CatBoost作了较为详细的了解。本文作为集成学习的最后一篇文章,来介绍与Boosting框架有所不同的Bagging框架。
黄博的机器学习圈子
2020/07/23
9180
【机器学习基础】数学推导+纯Python实现机器学习算法26:随机森林
【机器学习基础】数学推导+纯Python实现机器学习算法5:决策树之CART算法
在数学推导+纯Python实现机器学习算法4:决策树之ID3算法中笔者已经对决策树的基本原理进行了大概的论述。本节将在上一讲的基础上继续对另一种决策树算法CART进行讲解。
黄博的机器学习圈子
2020/06/21
1.2K0
纯 Python 实现的图片压缩工具
现在的手机拍摄的照片基本都在 10 MB 之上,而上传照片都有大小限制,那就需要对图片压缩,本文分享一个本地化的纯 Python 编写图片压缩工具,帮助您减小图像的文件大小,比很多在线压缩的要好用。
somenzz
2023/01/03
6840
纯 Python 实现的图片压缩工具
【机器学习基础】数学推导+纯Python实现机器学习算法23:kmeans聚类
聚类分析(Cluster Analysis)是一类经典的无监督学习算法。在给定样本的情况下,聚类分析通过特征相似性或者距离的度量方法,将其自动划分到若干个类别中。常用的聚类分析方法包括层次聚类法(Hierarchical Clustering)、k均值聚类(K-means Clustering)、模糊聚类(Fuzzy Clustering)以及密度聚类(Density Clustering)等。本节我们仅对最常用的kmeans算法进行讲解。
黄博的机器学习圈子
2020/07/07
1.3K0
【机器学习基础】数学推导+纯Python实现机器学习算法23:kmeans聚类
ID生成算法-雪花算法介绍及实现
SnowFlake 算法生成的 ID 是一个 64 位的整数,它的结构如下图所示:
王强
2020/07/06
2.9K0
云通信IM登录鉴权解密
云通信IM的前身是QQ,我们抽离QQ的核心模块,将其整合成适合各终端接入的 IM SDK以及后台服务。
linpeiyang@云通信专项团队
2020/11/22
4.1K0
纯Python方案实现中英文全文搜索
在互联网上的各类网站中,无论大小,基本上都会有一个搜索框,用来给用户对内容进行搜索,小到站点搜索,大到搜索引擎搜索。
州的先生
2020/12/07
1.4K0
【机器学习基础】数学推导+纯Python实现机器学习算法4:决策树之ID3算法
作为机器学习中的一大类模型,树模型一直以来都颇受学界和业界的重视。目前无论是各大比赛各种大杀器的XGBoost、lightgbm还是像随机森林、Adaboost等典型集成学习模型,都是以决策树模型为基础的。传统的经典决策树算法包括ID3算法、C4.5算法以及GBDT的基分类器CART算法。
黄博的机器学习圈子
2020/06/21
9130
实验2 直线生成算法实现
理解基本图形元素光栅化的基本原理,掌握一种基本图形元素光栅化算法,利用OpenGL实现直线光栅化的DDA算法。
步行者08
2018/10/09
1K0
【算法】Python实现机器学习算法
小编邀请您,先思考: 1 您使用Python做过什么? 2 如何用Python实现决策树系列算法? 人生苦短,就用 Python。 在 Kaggle 最新发布的全球数据科学/机器学习现状报告中,来自
陆勤_数据人网
2018/04/18
1.9K0
【算法】Python实现机器学习算法
Java实现最小生成树算法之Kruskal算法
最近做大题目主要运用的都是数据结构方面的题,既有之前的最短路径的相关的算法,也有现在的最小生成树,这里先讲解Kruskal算法,主要是我先在刚会这个,prim算法,明天再看。 Kruskal算法算法其实和之前的djs算法有点类似,主要还是每次循环找出局部最优解,也就是最小权重的那条路,一次寻找即可,这里作者一开始俊德实现起来并不麻烦,但之后发现,循环找出最优解不是最麻烦的,大不了每次排序,就行了,但是之后发现最难的一块是不能出现环,举个例子,
萌萌哒的瓤瓤
2020/08/26
2.3K0
Java实现最小生成树算法之Kruskal算法
python实现算法:全排列算法
代码部分: #test.py def swap(arr, i, j): tmp = arr[i] arr[i] = arr[j] arr[j] = tmp def show(arr,n): for i in rang(0,n): print(arr[i],'\t',end=' ') //全排列部分 def perm(arr, p, q): if p==q: show(arr,q+1) print('\n') for i in range(p, q+1): swap(arr,
lexingsen
2022/02/24
9240
python实现算法:全排列算法
点击加载更多

相似问题

UserSig 如何生成?

1402

java 生成 UserSig报错?

1635

java根据文档生成usersig失败?

2947

关于java生成usersig的问题?

21.2K

web端调用生成userSig报错?

54K
相关问答用户
新浪微博 | 高级总监擅长4个领域
到家集团 | 技术VP擅长5个领域
擅长5个领域
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档