又是很久没有写技术博客了,盖因最近都在学习知识,也没有总结出什么值得分享的内容,所以一直停笔至今。最近的工作和钉钉的开发打上了交到,官方并没有提供任何Python的SDK,于是只能全部自己写。现在我将其中实现起来相对费时间的“加密/解密/签名”部分分享出来,希望能帮助到一些人。

加密/解密的具体机制,可以参考 官方文档 。

在你的项目中安装这个扩展,可以使用: pip install dingtalk_crypto安装。

使用方法,可以参考下面的测试代码:

# -*- coding: utf-8 -*-

import json

from dingtalk_crypto import DingTalkCrypto

# 这个是钉钉官方给的测试数据

# @see https://open-doc.dingtalk.com/doc2/detail.htm?treeId=175&articleId=104945&docType=1#s14

encrypt_text = '1a3NBxmCFwkCJvfoQ7WhJHB+iX3qHPsc9JbaDznE1i03peOk1LaOQoRz3+nlyGNhwmwJ3vDMG' \

'+OzrHMeiZI7gTRWVdUBmfxjZ8Ej23JVYa9VrYeJ5as7XM/ZpulX8NEQis44w53h1qAgnC3PRzM7Zc' \

'/D6Ibr0rgUathB6zRHP8PYrfgnNOS9PhSBdHlegK+AGGanfwjXuQ9+0pZcy0w9lQ=='

crypto = DingTalkCrypto(

'4g5j64qlyl3zvetqxz5jiocdr586fn2zvjpa8zls3ij',

'123456',

'suite4xxxxxxxxxxxxxxx'

)

signature = '5a65ceeef9aab2d149439f82dc191dd6c5cbe2c0'

timestamp = '1445827045067'

nonce = 'nEXhMP4r'

class TestCrypto:

def test_decrypt(self):

randstr, length, msg, suite_key = crypto.decrypt(encrypt_text)

msg = json.loads(msg)

assert msg['EventType'] == 'check_create_suite_url'

assert msg['Random'] == 'LPIdSnlF'

assert suite_key == 'suite4xxxxxxxxxxxxxxx'

def test_encode(self):

encrypt_msg = crypto.encrypt('hello world')

randstr, length, msg, suite_key = crypto.decrypt(encrypt_msg)

assert msg == 'hello world'

def test_check_signature(self):

assert crypto.check_signature(encrypt_text, timestamp, nonce, signature)

def test_sign(self):

msg = crypto.encrypt('hello world')

actual_sig, actual_time, actual_nonce = crypto.sign(msg)

assert True

最后,贴出项目的 源码地址 ,希望能一些交流。

python制作加密工具_Python制作钉钉加密/解密工具相关推荐

  1. fish工具_Python程序员使用哪些开发工具

    Python程序员使用哪些开发工具?很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效 ...

  2. python制作查询软件_python 制作本地应用搜索工具

    一.准备工作 请确保已经安装tkinter.pyperclip.threading 二.预览 1.启动 这是程序启动的主界面. 2.运行 搜索之后的界面. 3.结果 选择应用,右击鼠标复制它的下载链接 ...

  3. python 小说下载工具_python 制作网站小说下载器

    基本开发环境 ・ Python 3.6 ・ Pycharm 相关模块使用 目标网页分析 输入想看的小说内容,点击搜索 这里会返回很多结果,我只选择第一个 网页数据是静态数据,但是要搜索,是post请求 ...

  4. python快递费用计算_Python制作快递查询系统,来感受到了Python的强大!

    原标题:Python制作快递查询系统,来感受到了Python的强大! 导语 今天来做个简答的python案例,利用Python制作一个简单的快递查询系统. 让我们愉快地开始吧~ 开发工具 Python ...

  5. 用python写简易计算器_Python制作简易计算器

    导语 又到了"愉快的"周末写推送时间了~这次我们利用Python制作一个简单的计算器呗. 让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: python自带 ...

  6. python软件桌面图标_python制作一个桌面便签软件

    # 2014.10.15 更新了memo.zip, 网盘的exe:修复:1.隔日启动不能正常加载json,加入:1.隐藏任务栏图标,2.通过垃圾桶进行窗口移动. # 2014.10.8 10.36更新 ...

  7. python中excel制作成绩报表_python制作简单excel统计报表2之操作excel的模块openpyxl简单用法...

    python制作简单excel统计报表2之操作excel的模块openpyxl简单用法 # coding=utf-8 from openpyxl import Workbook, load_workb ...

  8. 如何用python制作五子棋游戏_Python制作打地鼠小游戏

    原文链接 Python制作小游戏(二十一)​mp.weixin.qq.com 效果展示 打地鼠小游戏https://www.zhihu.com/video/1200492442610450432 简介 ...

  9. python代码手机壁纸_Python制作微信好友背景墙教程(附完整代码)

    引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像. 效果如下图,出于隐私考虑,这里作了模糊处理. 是不是很炫,而且这还是独一无二的,毕竟 ...

最新文章

  1. DataRow复制一行到另一个DataTable
  2. CodeForces - 556A Case of the Zeros and Ones
  3. 【面试虐菜】—— JAVA面试题(3)
  4. 将Android实例导入project
  5. WEB技术架构的资源链接。
  6. 在MFC中使用Cstring
  7. mysql的日期和时间函数
  8. android 画笔
  9. SQL Server Always On可用性组中的数据同步
  10. java的ArrayList分析
  11. 使用Gradle构建Spring源码
  12. 原生js完成的五子棋人机大战
  13. Grid++用程序定义报表模板(官方例子)
  14. echarts饼状图
  15. 表格组件列属性formatter和styler使用方法
  16. CVE-2022-28512 Fantastic Blog CMS 1.0 版本存在SQL注入漏洞
  17. 【web-ctf】ctf_BUUCTF_web(2)
  18. 小米手机销量是乐视的几十倍,为什么雷军还要去跟贾跃亭打口水战?
  19. python 中文字符转换
  20. NASA从太空发射激光,制作地球森林高度地图

热门文章

  1. MySQL用户如何构建实时数仓
  2. 超燃!支付宝技术双11纪录片《一心一役》全球独家首发
  3. 原理解析 | 深入了解 Apache Flink 的网络协议栈
  4. Sentinel 成为 Spring Cloud 官方推荐的主流熔断降级方案
  5. Logtail从入门到精通(四):正则表达式Java日志采集实战
  6. 【MPS最佳实践】媒体工作流转码
  7. 移动云TeaTalk(长沙站)| 聚焦“云网一体”发展新机遇
  8. 泡着枸杞写bug的三流程序员凭什么逆袭到一线大厂?
  9. 终于,我也到了和 Eclipse 说再见的时候,难说再见
  10. AWS在深圳成立大中华区第二个物联网实验室