一个用于安全密码处理的库。
项目描述
CryptoLibrary是一个用于安全密码处理的库。项目页面
有关Robot Framework的更多信息,请参阅http://robotframework.org。
安装
如果您已经安装了Python >= 3.6且已安装pip,您可以直接运行
pip install --upgrade robotframework-crypto
或者如果您同时安装了Python 2和3,您可以使用
pip3 install --upgrade robotframework-crypto
如果您有Python 2 … 我非常抱歉!请更新!
如何工作
CryptoLibrary使用椭圆曲线密码学进行非对称加密,以安全地存储机密数据。
在控制台/终端中使用命令 CryptoLibrary,您可以为您的测试环境生成一个密钥对(私钥和公钥)。生成后将获得公钥。
现在可以使用此公钥来加密您不希望公开的所有数据。密码、个人数据等。
您可以在计算机上使用命令``CryptoClient``来加密数据。
加密数据将看起来像这样
crypt:tIdr5s65+ggfJZl46pJgljioCUePUdZLozgiwquznw+xSlmzT3dcvfrTL9wIdRwmNOJuONT7FBW5
现在可以使用Robot Framework中的CryptoLibrary来解密此加密数据。
CryptoLibrary需要private_key_store.json来完成此操作。这是作为密钥对生成的。私有密钥可以通过python -m CryptoLibrary 导入到测试环境中。
从日志中抑制加密文本
CryptoLibrary解密的所有数据在日志中都被***替代。这始终有效,无法禁用。无需为此使用特殊关键字。
测试中的使用
*** Settings ***
Resource imports.resource
Library CryptoLibrary %{private_key_password} variable_decryption=False
#private key which should be secret, should also be protected by a password
*** Variables ***
${secret}= KILL ALL HUMANS!!!
${enc_user}= crypt:nkpEPOVKfOko3t04XxOupA+F/ANTEuR9aQuPaPeMBGBQenwYf6UNESEl9MWRKGuj60ZWd10=
${enc_pwd}= crypt:TVpamLXCtrzRsl8UAgD0YuoY+lSJNV73+bTYhOP51zM1GQihgyCvSZ2CoGoKsUHLFjokyJLHxFzPEB4=
*** Test Cases ***
Valid Login
Open Browser ${BASE-URL}
Suppress Logging #disable Robot Framework logging
${var}= set Variable ${secret}
Log ${var}
Unsuppress Logging #enable Robot Framework logging
${user}= Get Decrypted Text ${enc_user} #decrypts cipher text and returns plain text
Input Text id:input_username ${user}
${password}= Get Decrypted Text ${enc_pwd} #decrypts cipher text and returns plain text
Input Password id:input_password ${password}
Click Button id:button_login
Page Should Contain Element //a[text()='Logout']
[Teardown] Close Browser
在这种情况下,是私有密钥的解密密码。它也可以作为散列值持久地保存到测试环境中。
在库调用中的参数variable_decryption,如果设置为true,它将自动解码变量部分中定义的所有密码,然后无需使用"Get Decrypted Text"。
CryptoLibrary的导入
密码 |
可以将私有密钥的密码作为参数提供。这应该作为秘密存储!请使用环境变量而不是在此处硬编码它。 |
variable_decryption |
如果设置为True,则所有在测试套件或测试用例开始时可用且包含加密文本的变量都将自动解密。 |
key_path |
一个定义密钥对物理存储位置的路径。路径需要是绝对路径或相对于cryptoutility.py的相对路径。 |
SeleniumLibrary 插件
CryptoLibrary.Plugin是一个SeleniumLibrary插件。当使用时,输入密码关键字现在可以处理解密密文。
示例
*** Settings ***
Library SeleniumLibrary plugins=CryptoLibrary.Plugin
*** Variables ***
${Admins-Password}= crypt:fQ5Iqn/j2lN8rXwimyz0JXlYzD0gTsPRwb0YJ3YSvDchkvDpfwYDmhHxsZ2i7bIQDlsWKJVhBb+Dz4w=
*** Test Cases ***
Decrypt as Plugin
Open Browser http://www.keyword-driven.de
Input Text input_username admin
Input Password input_password ${Admins-Password}
关键字可能会发生变化。我不会这样做,但在主要版本中可能会发生。请随意提交拉取请求以改进文档或为其编写一些测试。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
哈希值 for robotframework_crypto-0.3.0-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b6784e4139211a770ec55e825d23e568c9030b7eb7230a2a3b6832b2d9f007a1 |
|
MD5 | 1a5b8a27d3c0a9023b401142731768d2 |
|
BLAKE2b-256 | 42f2b897fd82c3dc1eaf6241b78e5e0e58e207a2a8af879fcc122f61f43e07d4 |