返回顶部
首页 > 资讯 > 后端开发 > Python >python base64 crypto
  • 953
分享到

python base64 crypto

pythoncrypto 2023-01-31 01:01:19 953人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

from Crypto.Cipher import AESfrom binascii import b2a_hex, a2b_heximport JSONimport urllib2import timeimport random, st

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"

--结束END--

本文标题: python base64 crypto

本文链接: https://lsjlt.com/news/184679.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python base64 crypto
    from Crypto.Cipher import AESfrom binascii import b2a_hex, a2b_heximport jsonimport urllib2import timeimport random, st...
    99+
    2023-01-31
    python crypto
  • python Crypto模块的使用
    前一个星期一直再弄爬取网易云音乐的评论,真是一波三折,网页又是动态js,普通的方法获取不了,还有它发送的参数也要经过加密才....这篇文章就是写一下Crypto模块的使用。 Crypto不是自带的模块,需要下载。http://www.vo...
    99+
    2023-01-31
    模块 python Crypto
  • python模块之base64
    base64模块提供了在二进制数据和可打印ASCII字符间编解码的功能,包括RFC3548中定义的Base16, Base32, Base64, Ascii85, Base85等编码。 RFC3548中定义的编码适用于将二进制数据编码后,...
    99+
    2023-01-31
    模块 python
  • Python-编码(base64,md5
    Base64编码是一种“防君子不防小人”的编码方式。广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有“=”,生成的编码都是ascii字符。优点:速度快,ascii字符,肉眼不可理解缺点:编码比较长,非常容易被破...
    99+
    2023-01-31
    Python
  • python base64解码TypeE
    直接贴代码 >>> b='5paw5Lqn5ZOB55qE5biC5Zy6566h55CGMWk' >>> base64.b64decode(b) Traceback (most recent call...
    99+
    2023-01-31
    python TypeE
  • Python实现base64编码
    Base64是一种用64个字符来表示任意二进制数据的方法。 用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如...
    99+
    2024-04-02
  • python基于crypto实现加密与解密
    1.安装crypto库 pip install pycryptodome ps: 使用pip工具安装步骤: 1、直接安装pycryptodome模块即可 pip install pycryptodom...
    99+
    2023-10-10
    python 开发语言
  • python中常用的base64 md5
    转自:http://www.cnblogs.com/darkpig/p/5676076.html Python内置的base64模块可以实现base64、base32、base16、base85、urlsafe_base64的...
    99+
    2023-01-31
    常用 python
  • Crypto算法库详解
    安装与使用 Crypto 算法库在 python 中最初叫 pycrypto,这个作者有点懒,好几年没有更新,后来就有大佬写了个替代库 pycryptodome。这个库目前只支持 python3,安装也很简单pip install pyc...
    99+
    2023-01-31
    算法 详解 Crypto
  • python中base64指的是什么
    这篇文章主要介绍python中base64指的是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开发,众多大型网站均为Python...
    99+
    2023-06-14
  • Python base64 和图片相互转
    os, base64 ###图片转换为base64编码 (,) faf.read() strbase64.b64encode(a) str ###base64编码转换图片 tbase64.b64decode(str) (,) ff...
    99+
    2023-01-31
    图片 Python
  • Python如何实现base64编码
    这篇“Python如何实现base64编码”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何实现base64编码...
    99+
    2023-06-30
  • 详解Python中使用base64模块来处理base64编码的方法
    base64模块是用来作base64编码解码的。这种编码方式在电子邮件中是很常见的。 它可以把不能作为文本显示的二进制数据编码为可显示的文本信息。编码后的文本大小会增大1/3。 闲话不说了,base64模块...
    99+
    2022-06-04
    详解 模块 方法
  • Python中base64模块如何使用
    Python中base64模块如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python base64模块是用来作base64编码解码的。这种编码方式在...
    99+
    2023-06-17
  • Python base64和hashlib模块如何使用
    本文小编为大家详细介绍“Python base64和hashlib模块如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python base64和hashlib模块如何使用”文章能帮助大家解决疑惑,下面跟着小编的...
    99+
    2023-07-05
  • Nodejs中crypto模块的用法
    这篇文章主要介绍“Nodejs中crypto模块的用法”,在日常操作中,相信很多人在Nodejs中crypto模块的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Node...
    99+
    2024-04-02
  • Python使用Crypto库实现加密解密的示例详解
    目录一:crypto库安装二:python使用crypto1:crypto的加密解密组件des.py2:crypto组件使用知识补充一:crypto库安装 pycrypto,pycr...
    99+
    2023-01-11
    Python Crypto加密解密 Python Crypto加密 Python Crypto解密 Python Crypto
  • python篇---base64码流转成图片保存
    python篇—base64码流转成图片保存 import osimport base64from io import BytesIOfrom PIL import Imagefrom faker i...
    99+
    2023-09-02
    python 深度学习 开发语言
  • Python base64和hashlib模块及用法详解
    目录一、base64模块1、对字符串编解码2、对URL编解码二、hashlib模块1、hashlib模块1.1 常用属性1.2 常用方法1.3 使用步骤2、MD5(消息摘要算法)3、...
    99+
    2023-02-24
    Python base64和hashlib模块 Python base64和hashlib
  • nodejs加密Crypto的实例代码
    加密技术通常分为两大类:“对称式”和“非对称式”。 对称式加密: 就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技术在当今被广泛采用,如美国政府所采用的DES加密标准就是一种典...
    99+
    2022-06-04
    实例 代码 nodejs
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作