Python 安装 Crypto_python crypto_初识不知君的博客-程序员宝宝

技术标签: python  python学习笔记  

Python 安装 Crypto

今天在用 python 写 小程序需要解密时,需要安装 Crypto 使用 AES 对登录的信息进行解密

warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
    building 'Crypto.Random.OSRNG.winrandom' extension
    error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'D:\Program Files\python3.8\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\auth\\AppData\\Local\\Temp\\pip-install-lmxibyso\\pycrypto\\setup.py'"'"'; __file__='"'"'C:\\Users\\auth\\AppData\\Local\\Temp\\pip-install-lmxibyso\\pycrypto\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\auth\AppData\Local\Temp\pip-record-ii2jkae9\install-record.txt' --single-version-externally-managed --compile --install-headers 'D:\Program Files\python3.8\Include\pycrypto' Check the logs for full command output.

找了很多方法
我试了更新 pip,试了卸载重装,试了 安装 pycrypto 编译好的 exe 安装包(不知道是不是因为版本不对,最后已失败告终),,,
终于还是发现了一个 可以用的
https://www.cnblogs.com/steinven/p/11216361.html

python 在 Windows下使用AES时要安装的是pycryptodome 模块

pip install pycryptodome

python 在 Linux下使用AES时要安装的是pycrypto模块

pip install pycrypto

终于解开了小程序的加密信息

# 微信官方 提供的 解密 demo
import base64
import json
from Crypto.Cipher import AES

class WXBizDataCrypt:
    def __init__(self, appId, sessionKey):
        self.appId = appId
        self.sessionKey = sessionKey

    def decrypt(self, encryptedData, iv):
        # base64 decode
        sessionKey = base64.b64decode(self.sessionKey)
        encryptedData = base64.b64decode(encryptedData)
        iv = base64.b64decode(iv)

        cipher = AES.new(sessionKey, AES.MODE_CBC, iv)

        decrypted = json.loads(self._unpad(cipher.decrypt(encryptedData)))

        if decrypted['watermark']['appid'] != self.appId:
            raise Exception('Invalid Buffer')

        return decrypted

    def _unpad(self, s):
        return s[:-ord(s[len(s)-1:])]
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_38695417/article/details/109291892

智能推荐

JavaBean_java_zhaoyanli的博客-程序员宝宝

1,什么是JavaBean¨JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:这个Java类必须具有一个无参的构造函数属性必须私有化。私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。JavaBean在J2EE开发中,通常用于封装数据,对于遵循以上写法的JavaBean组件,其它程序可以通过反射技术实例化Ja

增加浏览量_ZHOUZAIHUI的博客-程序员宝宝

import importlibimport requestsimport randomimport timeimport sysimport re# --------------------------# 实现编码转换# Python2实现方法,需要利用sys模块'''reload(sys)sys.setdefaultencoding('utf-8')'''# P...

php 递归无限级分类 非递归无限级分类_华尔街之程序员的博客-程序员宝宝

实际项目开发,经常碰到无限级分类、三级省市区联动。有数据如下:$areas = [ ['id' => 110000, 'name' => '北京市', 'pid' => 0], ['id' => 310000, 'name' => '上海市', 'pid' => 0], ['id' => 440000, 'name' =&...

poi合并单元格的处理_poi 判断合并单元格_Younger成的博客-程序员宝宝

1、获取真实的单元格行数2、判断是否有合并行package util;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import org.apache.commons.io.Fi...

sourceInsight4.0激活方法(转)_source insight4.0激活_Oliverlyn的博客-程序员宝宝

转自: http://blog.csdn.net/stupid56862/article/details/73196851 下载方式百度云盘 链接: https://pan.baidu.com/s/1geJjAZh 密码: j3tx使用步骤软件是正式版 可破解 1.安装程序 sourceinsightsetup 2.替换掉 sourceinsight4.exe (将下载的sourceins

[ERROR] No plugin found for prefix ‘mybatis-generator‘ in the current project and in the plugin grou_Fighting_Jun_C的博客-程序员宝宝

mybatis-generator运行自动生成代码时出现下面的错误[ERROR] No plugin found for prefix 'mybatis-generator' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (D:\Repository), alimaven (http://

随便推点

使用MOM2005监视Exchange Server 2007角色状态_weixin_34088583的博客-程序员宝宝

环境:一台Exchange 2007服务器,安装了邮箱、集线器传输、客户端访问角色。 步骤: 一、. 在MOM 2005 SP1上安装Exchange 2007管理包 管理包是MOM的基本管理要素,在管理包中事先定义好了很多监视事件规则、性能计数器以及运行脚本。Exchange 2007同MOM 2005的整合主要依赖于在Exchange 2007中的命令行脚本,...

增加背景_zhouminghong的博客-程序员宝宝

背景可以增强标题的整洁效果。增加一点补白和背景颜色,我们就有了一个不需要图片的,但又很有样子的标题。如下:h1 {font-family: Arial, sans-serif;font-size: 24px;color: #fff;padding: 4px;background-color: #696;} 我们把文字改成白色,周围加上4个点的补白,再把背景改成绿色。就象图2-4显示的那样,

Docker的概念及基本指令学习(从安装、管理、核心概念到docker file 、 服务编排、集群)_docker ddp_么贺贵的博客-程序员宝宝

注册服务器可以包含若干个仓库,默认使用docker hub(官方的仓库hub.docker.com),国内的注册服务器主要包括阿里云、腾讯云、网易云等。没有特殊要求的场景下默认使用官网的仓库最好。仓库是一批镜像的合集。仓库的命名通常为 (注册服务器)/(仓库名) 例如:private-docker.com/centeros可以理解为 private-docker.com这个服务器下有一个centeros仓库,这个仓库中可以包含若干个版本的centOS的镜像镜像是一个模版,能够启动多个容器,在市场用,

验收测试的名词解释_软件测试名词解释_weixin_39975683的博客-程序员宝宝

软件质量与软件产品满足明确或隐藏需求的能力有关的特征或特性的总和。软件测试使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。验收测试是软件产品完成了功能测试和系统测试之后,在产品发布之前所进行的软件测试活动。失败测试纯粹为了破坏软件而设计和执行的测试案例,被称为失败测试。边界测试是指使用预定定义的边界值,如最大值、最小值、空值或其...

noise2noise学习笔记_渣渣橙的博客-程序员宝宝

原文:Noise2Noise: Learning Image Restoration without Clean Data摘要:我们通过机器学习将基本统计推理应用于信号重建——学习将损坏的观测值映射到干净的信号——得出了一个简单而有力的结论:仅通过查看损坏的示例,在性能上,有时甚至超过使用干净数据的训练。就可以学习恢复图像,在没有明确被破坏的图像先验或可能性模型。在实践中,我们表明,单一模型仅基于噪声数据学习摄影噪声去除、合成蒙特卡罗图像去噪和欠采样MRI扫描重建——所有这些都受到不同过程的破坏。

CI3框架初识-钩子_yuxianjun2012的博客-程序员宝宝

今日花了半天看完ci框架手册,对比其他框架,有所心得: 1.概念上的对比   1.1 CI的钩子(hook),其实就是类似于laravel,shopex等框架的中间件,只是可以通过挂钩点的概念实现过滤在何处实现。如下:  挂钩点以下是所有可用挂钩点的一份列表:pre_system 在系统执行的早期调用,这个时候只有 基准测试类 和 钩子类 被加载了, 还没有