接口测试加解密与多环境测试

加密方法

  • 请求加密:摘要加密 把原文或者原始请求中的部分字段做摘要算法的加密,把加密后的结果也放到原始请求中发送。
  • 响应加密:返回的整个响应或者响应中的部分字段被加密,我们需要找到解密办法,还有一个名字叫摘要算法。

加密与签名的区别

  • 加密通常代表是对称加密,这种加密是可以解密的。比如base64,主要用于的数据传输。
  • 签名通常代表是非对称加密,这种加密不可逆不可解密。比如rsa、md5。通常用于认证内容未被篡改。

解密方式

  • 自己解决通用解密算法
  • 需要研发提供加解密的lib
  • 需要加密方提供远程解析服务,这样算法仍然是保密的

import base64
import json

import requests

class TestEnCode:
    origin_url = 'http://0.0.0.0:8000/json_1.txt'
    url = "http://0.0.0.0:8000/base64_1.txt"

    def test_get(self):
        r = requests.get(url=self.url)
        print(r.content)
        data = self.decode(r.content)
        j = json.loads(data)
        print(j)
        assert len(j['topics']) == 2

    def test_encode(self):
        r = requests.get(url=self.origin_url)
        print(r.json())
        assert len(r.json()['topics']) == 2

    def decode(self, raw):
        return base64.b64decode(raw)

    def test_base64_api(self):
        """返回结果有加密"""
        res = ApiRequest()
        res_data = {
            "schema": "http",
            "encoding": "base64",
            "method": "get",
            "url": "http://docker.testing-studio.com/base64_1.txt",
            "headers": None
        }
        j = res.send(res_data)
        assert len(j['topics']) == 2

    def test_api(self):
        """返回结果没有加密"""
        res = ApiRequest()
        res_data = {
            "schema": "http",# 请求方式
            "encoding": "",# 是否加密
            "method": "get",# 请求方法
            "url": "http://0.0.0.0:8000/json_1.txt",
            "headers": None
        }
        j = res.send(res_data)
        assert len(j['topics']) == 2

class ApiRequest:
    """处理接口返回数据加密"""

    def send(self, data: dict):
        if data["schema"] == "http":
            # 把host修改为iP,并附加host到headers
            """支持多环境测试"""
            env = {
                "docker.testing-studio.com": {
                    "test": "192.168.1.37",
                    "dev": "192.168.2.14"
                },
                "default": "test"
            }
            # 井host修改为IP
            data["url"] = str(data['url']).replace("docker.testing-studio.com",
                                                env['docker.testing-studio.com'][env['default']])
            # 添加host到headers中
            data["headers"]["host"] = "docker.testing-studio.com"
            res = requests.request(data["method"], data['url'], headers=data["headers"])
            if data['encoding'] == 'base64':
                return json.loads(base64.b64decode(res.content))
            else:
                return json.loads(res.content)
        elif "dubbol" == data['schema']:
            pass
        elif data['urllib'] == "urllib":
            pass
        elif data['schema'] == "websocket":
            pass
        else:
            pass

原文地址:https://www.cnblogs.com/an5456/p/11729717.html

时间: 2024-11-10 14:49:35

接口测试加解密与多环境测试的相关文章

C++: 基于OpenSSL的AES256加解密测试

2018-07-12 暑假要求专业实习,要有周记和工作总结.之前老早就有过写博客的想法,因为可以让自己的学习生涯有迹可循.不过租的服务器即将到期,就不自己建站了.希望通过博客园这个平台记录下自己的成长吧.希望自己能坚持下去,也希望能留下一些对别人有用的东西. 第一篇内容是关于使用OpenSSL库对字符串和文件进行AES256加解密: 环境:   操作系统:windows 10 开发工具:Visual Studio 2015 关于OpenSSL 安装配置参考以下博客,传送门:https://www

LKT系列加密芯片DES加解密以及OpenSSL DES接口实现加解密

1.测试目标使用已经预置DES密钥的LKT4201N系列加密芯片完成运算2.测试环境本示例运行环境为windows系统.测试软件LCS KIT.LKT-K100开发板.3.测试步骤注意:"->"表示使用LCS KIT软件操作LKT-K100向加密芯片发送数据:"<-"表示使用LCS KIT软件操作LKT-K100读回加密芯片输出的数据.4.测试指令使用LKT4201N内部已存放的01号30密钥和01号31密钥进行加密操作测试( 注: 如何创建KEY文件和

aes加解密 Illegal key size

做aes加密时,发生一个奇怪的错误,在本地环境是好的,发布到测试环境就出问题, java.security.InvalidKeyException: Illegal key size 想到本地环境之前也是遇到加密问题,从oracle官网下载了两个文件,覆盖本地文件得到解决. 推测测试环境肯定也是此原因,照此方法,测试环境aes加解密问题得到解决,特此记录下来,避免下次再踩坑. 问题背景: Java几乎各种常用加密算法都能找到对应的实现.因为美国的出口限制,Sun通过权限文件(local_poli

rsa互通密钥对生成及互通加解密(c#,java,php)

摘要 在数据安全上rsa起着非常大的作用,特别是数据网络通讯的安全上.当异构系统在数据网络通讯上对安全性有所要求时,rsa将作为其中的一种选择,此时rsa的互通性就显得尤为重要了. 本文参考网络资料,提供了rsa互通性的一种可行的解决方案(c#,java,php),而这种互通性是在一定的局限性上达成的,比如密钥是1024位的(更高位没试过,应该也可行),基于PKCS1填充方式. 所编写的代码有一部分使用了硬编码,同时注重了功能的实现,在类结构设计上关注不多,有需要的可自行修改重构. 相关的程序集

使用delphi+intraweb进行微信开发4—微信消息加解密

在上一讲当中我做了个简单的微信文本消息回显应用,当时是以微信明文方式实现的,其实微信推荐的是消息应该加密传输以增加安全性,所以这讲说说微信消息的加解密. 在微信的帮助页面上可以下载微信消息加解密的例程,可惜的是没有Delphi语言的示例,网上搜索一番,没有人贡献出写好的Delphi版的微信加解密算法单元,好在有官方示例的C#版的,那就按照C#的改一个吧. 微信消息是以AES算法进行的加密处理,而遗憾的是Delphi并没有内置的AES算法单元,必须找第三方实现的,不过一般第三方实现的算法都因为种种

PHP RSA加解密示例(转)

1.生成密钥和公钥 开始前需要准备openssl环境 linux 需要安装openssl工具包,传送门http://www.openssl.org/source/ window 下需要安装openssl的程序,传送门http://slproweb.com/products/Win32OpenSSL.html 如果不想安装,可以用本例提供的密钥和公钥进行测试. 密钥生成 openssl genrsa 用于生成rsa私钥文件,生成是可以指定私钥长度和密码保护,具体参数请参考文档. openssl g

简单粗暴的so加解密实现

转载自http://bbs.pediy.com/showthread.php?t=191649 以前一直对.so文件加载时解密不懂,不了解其工作原理和实现思路.最近翻看各种资料,有了一些思路.看到论坛没有类似帖子,故来一帖,也作为学习笔记.限于水平,本菜没有找到安卓平台一些具体实现思路,这些方法都是借鉴其他平台的实现思路和本菜的YY,肯定会有不少疏漏和错误之处,还请各位大牛指正,感激不尽! 简单粗暴的so加解密实现一.  概述利用动态链接库实现安卓应用的核心部分,能一定程度的对抗逆向.由于ida

加解密入门基础知识

很多人都想学习解密,这东西刚入门时会让人沉迷进去,可以饭不吃.觉不睡.出现这种现像,也许是解密满足了人们的猎奇心里吧.但掌握这方面技术,对自身的 提高确实有好处.可以通过跟踪软件,提高自己的调试技能,并且能了解他人程序思路,使自己写出更好的程序.研究解密技术有助于掌握一些系统底层知识,系统 底层知识绝对是构造起大型软件的坚实基础.许多程序发展,都经历了这一锻炼过程的. 而大多数人可能认为解密是一门高深的学问.造成这种原因是以前这方面 的技术资料缺乏,从而将“解密”这一技能“神”化了.初学者一般不

openssl加解密原理及私有CA的建立

一.openssl加解密原理 数据加密解密过程数据加密需要实现的功能:数据私密性,数据完整性,身份认证和秘钥交换. 美国NIST,为了计算机的安全,提出了几个要求: 1.数据保密性   数据保密性   隐私性 2.完整性    数据完整性   系统完整性 3.可用性 4.真实性 && 可追溯性 OSI:x.800  安全攻击:   被动攻击:窃听   主动攻击:伪装.重播.消息修改.拒绝服务  安全机制:   加密.数字签名.访问控制.数据完整性.认证交换.流量填充.路由控制.公证  安全