Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 量角器:如何加密传递给UI自动化脚本的密码?_Typescript_Encryption_Protractor - Fatal编程技术网

Typescript 量角器:如何加密传递给UI自动化脚本的密码?

Typescript 量角器:如何加密传递给UI自动化脚本的密码?,typescript,encryption,protractor,Typescript,Encryption,Protractor,我正在使用带有typescript的量角器实现基于UI的自动化。我想将通过json文件(使用json格式作为testdata文件)传递的密码加密到我的规范中。 我的站点密码在Json文件中公开,但不知何故,我想对其进行加密。听起来,将密码作为环境变量传递比将其存储在文件中更容易,但如果您仍然坚持在此处对其进行加密,您可以: 生成密钥(用于解密的密码)并将其保存在notes中(解密密码时需要它) 安装 加密密码: 将其保存在json数据文件中 无论何时何地需要使用密码,请执行此操作 使用以下命

我正在使用带有typescript的量角器实现基于UI的自动化。我想将通过json文件(使用json格式作为testdata文件)传递的密码加密到我的规范中。
我的站点密码在Json文件中公开,但不知何故,我想对其进行加密。

听起来,将密码作为环境变量传递比将其存储在文件中更容易,但如果您仍然坚持在此处对其进行加密,您可以:

  • 生成密钥(用于解密的密码)并将其保存在notes中(解密密码时需要它)
  • 安装

  • 加密密码:

  • 将其保存在json数据文件中
  • 无论何时何地需要使用密码,请执行此操作
  • 使用以下命令运行量角器,指定步骤#1中的解密密钥
  • 附笔。 当我说用密码作为环境变量启动量角器更容易时,我的意思是

    PASSWORD=Pa$sword123! protractor protractor.conf.js
    

    然后将密码称为
    process.env.password

    ,webdriver协议本身也存在问题。默认情况下,它是HTTP,因此sendKeys将发送未加密的密码,并且可能很容易读取。以及命令和使用的值可能会写入一些命令日志等…@Sergey Pleshakov感谢您提供了一个漂亮而详细的答案。
    let CryptoJS = require("crypto-js");
    let encryptedPassword = CryptoJS.AES.encrypt('Pa$sword123!', key).toString();
    console.log(encryptedPassword); // U2FsdGVkX18iI0gLaeQmf2z7Ev82hMynTo1c2TkCCJo=
    
    {
        'username': 'test-account',
        'password': 'U2FsdGVkX18iI0gLaeQmf2z7Ev82hMynTo1c2TkCCJo='
    }
    
    let CryptoJS = require("crypto-js");
    let decryptedPassword  = CryptoJS.AES.decrypt(json['password'], process.env.PASSWORD_KEY).toString(CryptoJS.enc.Utf8);
    await login(json.username, decryptedPassword);
    
    PASSWORD_KEY=3467f7d0-190f-4319-836e-8918a778d120 protractor protractor.conf.js
    
    PASSWORD=Pa$sword123! protractor protractor.conf.js