我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python base64 crypto

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python base64 crypto

from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex
import json
import urllib2
import time
import random, string
import base64
import argparse
import sys
import os
import datetime
class prpcrypt():

def __init__(self, key, iv):
    self.key = key
    self.iv = iv
    self.mode = AES.MODE_CBC
    self.BS = AES.block_size
    # 补位
    self.pad = lambda s: s + (self.BS - len(s) % self.BS) * chr(self.BS - len(s) % self.BS)
    self.unpad = lambda s: s[0:-ord(s[-1])]

def encrypt(self, text):
    a = (self.BS - len(text) % self.BS)
    b = chr(self.BS - len(text) % self.BS)
    text = self.pad(text)
    cryptor = AES.new(self.key, self.mode, self.iv)
    # 目前AES-128 足够目前使用
    ciphertext = cryptor.encrypt(text)
    # 把加密后的字符串使用base64编码
    return base64.b64encode(ciphertext)

# 解密后,去掉补足的空格用strip() 去掉
def decrypt(self, text):
    text = base64.b64decode(text)
    cryptor = AES.new(self.key, self.mode, self.iv)
    plain_text = cryptor.decrypt(text)
    return self.unpad(plain_text.rstrip('\0'))

class mock():
def init(self, acct_id):
key_len = 30
listStr = ['http://','cdit.waa.cn','/crit-w/serce']
self.url = ''.join(listStr)
self.headers = {'Content-type': 'application/json', 'X_WANDA_ACCT_ID': acct_id,
'Cache-Control': 'no-cache'}
self.keylist = [random.choice(string.letters + string.digits) for i in range(key_len)]
self.reqsn = "".join(self.keylist)
self.reqtime = str(int(time.time())) + '000'

def format(self, acct_id, acct_data):
    data = {"req_time": self.reqtime, "acct_id": acct_id, "inf_id": "P_C_B016", "prod_id": "P_C_B016",
            "request_sn": self.reqsn,  "req_data": acct_data}
    return data

def send(self, data):
    req = urllib2.Request(self.url, data, self.headers)
    try:
        f = urllib2.urlopen(req)
    except urllib2.HTTPError, e:
        #print e.code
        #print e.read()
        return None
    else:
        return f.read()

start_time = datetime.datetime.now()
iv = "0000000000000000"
key = '5d8f090cb6196248145266334a'
acct_id = 'CRT_TET_ACCTID'
acct_data =
key = a2b_hex(key)
req_data = mock(acct_id).format(acct_id, acct_data)
req_data = json.dumps(req_data)
#print "请求原文:", req_data
req_data = prpcrypt(key, iv).encrypt(req_data)
#print "请求密文:", req_data
respon_data = mock(acct_id).send(req_data)
#print "响应密文:", respon_data
#if respon_data != None:
respon_data = prpcrypt(key, iv).decrypt(respon_data)

respon_data = json.loads(respon_data)
retcode = respon_data["retcode"]
end_time = datetime.datetime.now()
#print end_time
result_end = str(end_time - start_time)
#print result_end
response_sn = respon_data['response_sn']
if name == 'main':
iv = "0000000000000000"
key = '5d8f090cb6196245266334a'
acct_id = 'CRIT_TET_ACCTID'
acct_data = {"name": "周是", "cardNo": "51222219120017", "idType": "101", "reasonCode": "01","mobile": "13924623448", "qq": "544564567@qq.com", "wechat": "dgfh0890","weibo": "dgkhs0120@sina.com"}
key = a2b_hex(key)
req_data = mock(acct_id).format(acct_id, acct_data)
req_sn = req_data['request_sn']
acct_id = req_data['acct_id']
req_data = json.dumps(req_data)
#print "请求原文:", req_data
req_data = prpcrypt(key, iv).encrypt(req_data)
#print "请求密文:", req_data
respon_data = mock(acct_id).send(req_data)
#print "响应密文:", respon_data
if respon_data != None:
respon_data = prpcrypt(key, iv).decrypt(respon_data)
respon_data = json.loads(respon_data)
#print "响应原文:", respon_data
if respon_data['retcode'] == '000000':
print "credit service running"
else:
print "fail"
else:
print "fail"

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python base64 crypto

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python base64 crypto

from Crypto.Cipher import AESfrom binascii import b2a_hex, a2b_heximport jsonimport urllib2import timeimport random, str
2023-01-31

python Crypto模块的使用

前一个星期一直再弄爬取网易云音乐的评论,真是一波三折,网页又是动态js,普通的方法获取不了,还有它发送的参数也要经过加密才....这篇文章就是写一下Crypto模块的使用。Crypto不是自带的模块,需要下载。http://www.void
2023-01-31

python base64解码TypeE

直接贴代码 >>> b='5paw5Lqn5ZOB55qE5biC5Zy6566h55CGMWk' >>> base64.b64decode(b) Traceback (most recent call last):   File "",
2023-01-31

Python-编码(base64,md5

Base64编码是一种“防君子不防小人”的编码方式。广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有“=”,生成的编码都是ascii字符。优点:速度快,ascii字符,肉眼不可理解缺点:编码比较长,非常容易被破
2023-01-31

python模块之base64

base64模块提供了在二进制数据和可打印ASCII字符间编解码的功能,包括RFC3548中定义的Base16, Base32, Base64, Ascii85, Base85等编码。RFC3548中定义的编码适用于将二进制数据编码后,在邮
2023-01-31

python中常用的base64 md5

转自:http://www.cnblogs.com/darkpig/p/5676076.htmlPython内置的base64模块可以实现base64、base32、base16、base85、urlsafe_base64的编码解码,pyt
2023-01-31

python中base64指的是什么

这篇文章主要介绍python中base64指的是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开发,众多大型网站均为Python
2023-06-14

Python如何实现base64编码

这篇“Python如何实现base64编码”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何实现base64编码
2023-06-30

Python base64 和图片相互转

os, base64###图片转换为base64编码(,) faf.read()strbase64.b64encode(a)str###base64编码转换图片tbase64.b64decode(str)(,) ff.write(t)
2023-01-31

Python中base64模块如何使用

Python中base64模块如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python base64模块是用来作base64编码解码的。这种编码方式在
2023-06-17

详解Python中使用base64模块来处理base64编码的方法

base64模块是用来作base64编码解码的。这种编码方式在电子邮件中是很常见的。 它可以把不能作为文本显示的二进制数据编码为可显示的文本信息。编码后的文本大小会增大1/3。 闲话不说了,base64模块真正用的上的方法只有8个,分别是e
2022-06-04

Crypto算法库详解

安装与使用Crypto 算法库在 python 中最初叫 pycrypto,这个作者有点懒,好几年没有更新,后来就有大佬写了个替代库 pycryptodome。这个库目前只支持 python3,安装也很简单pip install pycry
2023-01-31

Python base64和hashlib模块如何使用

本文小编为大家详细介绍“Python base64和hashlib模块如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python base64和hashlib模块如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
2023-07-05

Python base64和hashlib模块及用法详解

这篇文章主要介绍了Python base64和hashlib模块,本文通过实例代码介绍了base64和hashlib模块的相关知识,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-02-24

Python使用Crypto库实现加密解密的示例详解

这篇文章主要为大家详细介绍了Python如何使用Crypto库实现加密解密的功能,文中的示例代码讲解详细,对我们学习Python有一定的帮助,需要的可以参考一下
2023-01-11

nodejs加密Crypto的实例代码

加密技术通常分为两大类:“对称式”和“非对称式”。 对称式加密: 就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技术在当今被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Sess
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录