欢迎光临散文网 会员登陆 & 注册

软件测试 | 接口加密

2023-07-26 10:24 作者:爱测软件测试  | 我要投稿

常用的加密算法有很多种,我所负责测试的接口平台项目主要使用AES加密算法,所以对该算法有所了解。

PyCrypto库

PyCrypto是一个免费的加密算法库,支持常见的DES、AES加密,以及MD5、SHA等各种HASH运算。

PyPI仓库地址:pypi.python.org/pypi/py

PyCrypto在Windows系统中安装需要依赖于“vcvarsall.bat”文件,解决办法是安装庞大的Visual Stuio,或者其他通过繁琐的过程才能安装成功。

PyCrypto可以做什么?在PyPI的下载页面给出了几个简单例子。

1.例一

SHA-256算法属于密码SHA-2系列哈希。它产生了一个消息的256位摘要。哈希值用作表示大量数据的固定大小的唯一值。数据的少量更改会在哈希值中产生不可预知的大量更改。

下面通过例子演示SHA256模块的使用。

通过digest()方法可以对字符串“message”进行加密。当然,通过hexdigest()方法也可以将其转换为16进制的加密字符串。

2.例二

AES是Advanced Encryption Standard的缩写,即高级加密标准,是目前非常流行的加密算法之一。

通过例子演示AES算法加密与解密。

加密

“This is a key 123”为key,长度有着严格的要求,必须为16、24或32位,否则将抛出错误:“ValueError:AES key must be eithre 16,24,or 32bytes long”。

“This is an IV456”为VI,长度要求更加严格,只能为16位。否则将抛出错误:“ValueError: IV must be 16 bytes long”.

通过encrypt()方法对“message”字符串进行加密得到:b'\xd6\x83\x8dd!VT\x92\xaa`A\x05\xe0\x9b\x8b\xf1'。

解密

想要对加密字符串进行解密,则必须知道加密时所使用的key和VI。通过decrypt()方法对加密字符串进行解密得到:b'The answer is no'。

如果key和VI错误,则将会无法得到正确的解密字符串。例如,把key修改为:‘This is a key888’,则加密失败将会得到另一个新的加密字符串:b'xb1\xf7\xc2\x9d\xf7\&\x05\x89\\\xa7\x17\x16\x06\x9b\xf4。

例三

除此之外,PyCryPto还提供一个强大的随机算法。

搜索微信公众号:TestingStudio霍格沃兹的干货都很硬核

软件测试 | 接口加密的评论 (共 条)

分享到微博请遵守国家法律