当前位置: 首页 > news >正文

接口测试实战教程(加密解密攻防)

点击文末小卡片免费获取软件测试全套资料资料在手涨薪更快一、对称加密对称加密算法是共享密钥加密算法在加密解密过程中使用的密钥只有一个。发送和接收双方事先都知道加密的密钥均使用这个密钥对数据进行加密和解密。数据加密在对称加密算法中数据发送方将明文 (原始数据) 和 加密密钥一起经过加密处理生成复杂的密文进行发送。数据解密数据接收方收到密文后使用加密的密钥及相同算法的逆算法对加密的密文进行解密将使其恢复成可读明文。二、非对称加密非对称加密算法有两个密钥一个称为公开密钥 (publickey)另一个称为 私有密钥 (private key)加密和解密使用的是两个不同的密钥所以这种算法称为非对称加密算法。如果使用公钥对数据进行加密只有用对应的私钥才能进行解密。如果使用私钥对数据进行加密只有用对应的公钥才能进行解密。三、常见加密处理方式根据上述常见的加密算法测试人员在测试不同的加密接口可采用下述的方法处理加密接口摘要算法MD5.SHA1 造接口数据前调用MD5SHA1进行编码服务端对比编码后的字符串是否一致对称加密算法AES,DES 造接口数据前从开发获取对称公钥基于对称公钥可以加密请求数据解密响应报文非对称加密算法RSA造接口数据前从开发获取公钥私钥去加密解密接口数据用户认证一般的接口测试工具都会提供一个User Auth/Authorization的选项1、OAuth 2.0认证在对应的工具上你可以选取对应的用户认证选项如果用Python如何实现用户认证。首先安装Requests库Requests库的get()和post()方法均提供有auth参数用于设置用户签名。假定我们有一个接口为添加一个新的公告接口需要认证auth(username,password)nid 或 name两个参数二选一伪代码highlighter- rubydef test_get_notice_list_nid_sucess(self): auth_user (admin , admin123456) r requests.get(self.base_url, auth auth_user, params {nid : 1}) result r.json() self.assertEqual(result[status], 200)2、数字签名在使用 HTTP/SOAP 协议传输数据的时候签名作为其中一个参数可以起到关键作用先来一个简单的通过客户的密钥服务端的密钥匹配这个很有好理解例如一个接口传参为highlighter- awkhttp://127.0.0.1:8000/api/?a1b2假设签名的密钥为signpassword加上签名之后的接口参数为highlighter- awkhttp://127.0.0.1:8000/sign/?a1b2signsignpassword但是这样的sign 参数明文传输是不安全的,一般会选择一些加密算法比如MD5 算法MD5算法是不可逆向的比如MD5代码如下highlighter- stylusimport hashlib md5 hashlib.md5() sign_str signpassword sign_bytes_utf8 sign_str.encode() md5.update(sign_bytes_utf8) sign_md5 md5.hexdigest() print(sign_md5)执行后得到6648e929329e53e7a91c50ae685a88b5此时带签名的接口为highlighter- apachehttp://127.0.0.1:8000/sign/?a1b2sign6648e929329e53e7a91c50ae685a88b5所以当服务器接收到请求后同样需要对“signpassword”进行 MD5 加密然后比对与调用者传来的 sign 加密串是否一致从而来鉴别调用者是否有权限使用该接口。接着我们来理解一个复杂一点的把sign参数传递为api key申请获取 timestramp时间戳同样需要用代码来实现原理和上面这个一致的。伪代码highlighter- rubydef setUp(self): self.base_url http://127.0.0.1:8000/api/sec_add_notice/ # app_key self.api_key APIkey # 当前时间 now_time time() self.client_time str(now_time).split(.)[0] # sign md5 hashlib.md5() sign_str self.client_time self.api_key sign_bytes_utf8 sign_str.encode(encodingutf-8) md5.update(sign_bytes_utf8) self.sign_md5 md5.hexdigest()3、AES加解密的过程通常接口会使用更复杂一点的方式来进行加密的操作常见的是AES的使用放一张图让大家感受一下AES加解密的过程Python里面有一个很好的黑魔法叫PyCrypto库支持常见的 DES、AES 加密以及 MD5、SHA 各种 HASH 运算。官方网站下载最新版本highlighter- awkhttps://www.dlitz.net/software/pycrypto/另外也可以在 PyPi 仓库中下载安装highlighter- awkhttps://pypi.python.org/pypi/pycrypto对于AES的加密来说看一下用了PyCrypto库的结果加密highlighter- stylusfrom Crypto.Cipher import AES obj AES.new(This is a key123, AES.MODE_CBC, This is an IV456) message The answer is no ciphertext obj.encrypt(message) print(ciphertext)程序运行后的结果为highlighter- taggerscriptb\xd6\x83\x8dd!VT\x92\xaaA\x05\xe0\x9b\x8b\xf1AES加密里面有两个关键一个是key必须为16,24,32位一个是VI必须为16位解密解谜者必须要同时知道key和VI才可以解密highlighter- stylusobj2 AES.new(This is a key123, AES.MODE_CBC, This is an IV456) s obj2.decrypt(ciphertext) print(s)由Crypto库的作者已停止维护现推荐安装highlighter- cmakepip install pycrytodomepycryptodome官方文档highlighter- awkhttps://www.pycryptodome.org/en/latest/最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。
http://www.gsyq.cn/news/1386166.html

相关文章:

  • FFmpeg:开源多媒体处理工具集合
  • Linux 后台进程 、nohup、screen详解——程序离线后台运行,关闭终端不中断
  • Linux kill、pkill进程终止详解——优雅杀进程、强制杀进程、僵尸进程处理
  • DeepSeek LeetCode 2699.修改图中的边权 Java实现
  • DeepSeek LeetCode 2681.英雄的力量 JavaScript实现
  • 产品成本管理的要义在哪里?
  • DeepSeek基准测试避坑手册:92%开发者忽略的4大陷阱——硬件配置偏差、tokenizer不一致、batch size幻觉、温度值污染
  • 服务器日志分析实战:用Python追踪HTTP 404错误并可视化异常频率
  • 别再死记硬背Payload了!我用XSS-Game靶场,带你拆解18种过滤规则背后的绕过逻辑
  • 别再被‘找不到源文件’卡住了!IIS和.NET 3.5安装失败的终极排查手册
  • 告别游戏卡顿!保姆级教程:在Win10上彻底搞定Antimalware Service高占用
  • ARM EDPRSR寄存器详解:调试状态与电源管理
  • 自动化供应链攻击6小时内攻陷5561个 GitHub 仓库
  • ARM架构中CONSTRAINED UNPREDICTABLE行为解析
  • 从《原神》到独立游戏:拆解Unity帧更新(Update/FixedUpdate)如何影响你的游戏手感
  • 上海单方起诉离婚律师实测评测:上海离婚股权分割律师/上海离婚诉讼律师/上海离婚财产分割律师/上海离婚隐匿财产律师/选择指南 - 优质品牌商家
  • ThinkPad开机报错0183/0253?别慌,手把手教你搞定EFI变量错误(附BIOS重置教程)
  • 别再盲跑了!手把手教你用Arduino Zero在IDE 2.0里设置断点单步调试
  • 2026广州搬家打包权威机构推荐:广州搬家收纳、广州搬屋、广州搬迁、广州红木搬运、广州蚂蚁搬家、广州蚂蚁搬屋、广州专业搬家选择指南 - 优质品牌商家
  • 2026雪花全粉辊筒干燥机技术拆解与主流品牌盘点:马铃薯雪花全粉设备、麦片辊筒干燥机、米粉辊筒干燥机、红薯全粉设备选择指南 - 优质品牌商家
  • 用Python+Pandas+Seaborn复现Lending Club数据分析(附完整代码与数据集)
  • AI算法持续迭代,GEO语义优化如何重构内容长效运营逻辑
  • 竞争存在论:竞争的语法——对称性破缺的底层逻辑
  • Python实战:Gabor滤波器在纹理识别中的降维与特征工程
  • 2026年马铃薯雪花全粉加工设备TOP5实测排行:酵母辊筒干燥机、雪花全粉辊筒干燥机、预糊化淀粉辊筒干燥机、马铃薯全粉加工设备选择指南 - 优质品牌商家
  • ARM架构CONSTRAINED UNPREDICTABLE行为解析与应对
  • 亚马逊 Rufus 关停,Alexa 正式上线:卖家必须读懂的6条新规则
  • 推荐题目:P1002 [NOIP 2002 普及组] 过河卒
  • G-Helper终极指南:如何彻底掌控你的华硕笔记本性能与能耗
  • 2026年5月口碑好的山东耐磨地质钢管源头厂家排行榜厂家推荐榜,R780地质钢管、深井地质钢管、岩心地质钢管厂家选择指南 - 海棠依旧大