跳转到主要内容

一个用于安全密码处理的库。

项目描述

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}

关键字可能会发生变化。我不会这样做,但在主要版本中可能会发生。请随意提交拉取请求以改进文档或为其编写一些测试。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

robotframework-crypto-0.3.0.tar.gz (74.0 kB 查看哈希值)

上传时间 源代码

构建分发

robotframework_crypto-0.3.0-py3-none-any.whl (22.2 kB 查看哈希值)

上传时间 Python 3

支持