在自动化脚本中如何实现加密、解密,编码和解码?

在移动自动化、接口测试、数据安全传输等场景中,数据加密与解密是保障信息安全的核心环节。直接在自动化脚本中调用api即可实现摘要算法、对称加密、非对称加密、Base64、Gzip 等功能,满足数据校验、敏感信息保护、数据压缩传输等需求。

一、冰狐智能辅助加解密总览

冰狐平台的加解密模块覆盖摘要算法、对称加密、非对称加密、编码压缩四大类,完全适配自动化脚本的开发逻辑,支持 JavaScript 语法,无需复杂配置,开箱即用。具体能力如下:

  1. 摘要算法:MD5、SHA-256、HMAC-SHA256,用于数据完整性校验、密码加密存储;
  2. 对称加密:AES、DES,加密效率高,适合大量数据加密;
  3. 非对称加密:RSA,公钥加密、私钥解密,安全等级高,适合密钥交换、小数据加密;
  4. 编码压缩:Base64 编解码、Gzip 压缩解压,适配数据传输、存储场景。

所有 API 均遵循参数标准化、返回值统一化原则,核心调用逻辑一致,降低学习成本,同时支持自定义配置(如加密模式、密钥长度、填充方式等),满足不同业务场景的安全需求。

二、摘要算法(Digest)

摘要算法属于单向加密,无法逆向解密,主要用于验证数据是否被篡改、密码不可逆存储。冰狐平台支持 MD5、SHA-256、HMAC-SHA256 三种常用算法,通过digest()函数实现,参数简洁易用。

1. 核心参数说明

参数名类型必填说明
typestring算法类型:md5、sha-256、hmac-sha-256
strstring待加密的原始字符串
optionsObject配置项:secret(仅 HMAC 有效)、returnString(默认 true,返回字符串;false 返回字节数组)

2. Demo 源码(摘要算法全场景测试)

// 冰狐智能辅助 摘要算法测试脚本
function main() {
    // 1. MD5加密(无密钥)
    var md5Ret = digest('md5', '冰狐智能辅助-测试数据');
    console.log('MD5加密结果:', md5Ret);

    // 2. SHA-256加密(无密钥)
    var sha256Ret = digest('sha-256', '冰狐智能辅助-测试数据');
    console.log('SHA-256加密结果:', sha256Ret);

    // 3. HMAC-SHA256加密(带密钥,需配置secret)
    var hmacOptions = {
        secret: 'icefox_2026_secret', // 自定义密钥
        returnString: true
    };
    var hmacRet = digest('hmac-sha-256', '冰狐智能辅助-测试数据', hmacOptions);
    console.log('HMAC-SHA256加密结果:', hmacRet);

    // 4. 验证数据完整性(对比摘要)
    var originalStr = '冰狐智能辅助-测试数据';
    var tamperedStr = '冰狐智能辅助-篡改数据';
    var originalDigest = digest('md5', originalStr);
    var tamperedDigest = digest('md5', tamperedStr);
    console.log('原始数据摘要:', originalDigest);
    console.log('篡改数据摘要:', tamperedDigest);
    console.log('数据是否被篡改:', originalDigest !== tamperedDigest);
}

3. 适用场景

  • 密码本地存储:将用户密码通过 MD5/HMAC 加密后存储,避免明文泄露;
  • 接口数据校验:客户端生成数据摘要,服务端对比摘要验证数据完整性;
  • 文件完整性检测:对文件内容生成摘要,防止文件被恶意篡改。

三、对称加密(AES/DES)

对称加密的核心是加密和解密使用同一密钥,加密速度快、效率高,适合自动化脚本中大量敏感数据(如账号、token、配置信息)的加密传输。冰狐平台支持 AES(高级加密标准)、DES(数据加密标准)两种算法,API 逻辑完全一致,仅构造函数参数不同。

1. AES 加密(推荐,安全性更高)

AES 是目前主流的对称加密算法,支持自定义加密模式(默认 AES,支持 ECB/PKCS5Padding 等),密钥长度默认 128 位。

核心 API
  • new AES(mode):构造函数,mode 可选加密模式,默认 'AES';
  • aes.genKey(len):生成密钥,len 为密钥长度,默认 128;
  • aes.encrypt(data, key):加密数据,返回加密字符串;
  • aes.decrypt(encryptedData, key):解密数据,返回原始字符串。

2. DES 加密

DES 是经典对称加密算法,支持 DESede(3DES)模式,加密逻辑与 AES 完全一致,仅构造函数支持name参数(默认 'DES')。

3. Demo 源码(AES+DES 联合测试)

// 冰狐智能辅助 对称加密(AES/DES)测试脚本
function main() {
    var testData = '账号:icefox_001;密码:123456;token:abcdef123456';
    console.log('原始敏感数据:', testData);

    // ========== 1. AES加密解密 ==========
    var aes = new AES(); // 默认模式:AES
    var aesKey = aes.genKey(); // 生成128位密钥
    console.log('AES密钥:', aesKey);

    // AES加密
    var aesEncrypted = aes.encrypt(testData, aesKey);
    console.log('AES加密结果:', aesEncrypted);

    // AES解密
    var aesDecrypted = aes.decrypt(aesEncrypted, aesKey);
    console.log('AES解密结果:', aesDecrypted);
    console.log('AES加解密是否一致:', testData === aesDecrypted);

    // ========== 2. DES加密解密 ==========
    var des = new DES(); // 默认模式:DES
    var desKey = des.genKey(); // 生成密钥
    console.log('DES密钥:', desKey);

    // DES加密
    var desEncrypted = des.encrypt(testData, desKey);
    console.log('DES加密结果:', desEncrypted);

    // DES解密
    var desDecrypted = des.decrypt(desEncrypted, desKey);
    console.log('DES解密结果:', desDecrypted);
    console.log('DES加解密是否一致:', testData === desDecrypted);

    // 自定义加密模式(ECB/PKCS5Padding)
    var aesCustom = new AES('AES/ECB/PKCS5Padding');
    var customEncrypted = aesCustom.encrypt(testData, aesKey);
    var customDecrypted = aesCustom.decrypt(customEncrypted, aesKey);
    console.log('自定义AES模式解密结果:', customDecrypted);
}

4. 适用场景

  • 自动化脚本敏感信息存储:加密存储账号、密码、接口密钥,避免明文暴露;
  • 设备间数据传输:自动化任务中设备与云端、设备与设备间的数据加密传输;
  • 本地数据保护:加密脚本配置文件、缓存数据,防止数据被窃取。

四、非对称加密(RSA):高安全密钥交换方案

非对称加密采用公钥加密、私钥解密,密钥分为公钥(可公开)和私钥(保密),安全等级远高于对称加密,适合自动化场景中密钥交换、小数据敏感信息加密(如支付信息、核心配置)。冰狐 RSA API 支持自定义加密模式,密钥生成后返回 JSON 对象,调用便捷。

1. 核心 API

  • new RSA(mode):构造函数,mode 可选加密模式,默认 'RSA';
  • rsa.genKey(len):生成密钥对,返回{publicKey: '', privateKey: ''}
  • rsa.encrypt(data, publicKey):公钥加密,返回加密字符串;
  • rsa.decrypt(encryptedData, privateKey):私钥解密,返回原始字符串。

2. Demo 源码(RSA 非对称加密测试)

// 冰狐智能辅助 RSA非对称加密测试脚本
function main() {
    var sensitiveData = '冰狐智能辅助-核心密钥:ICEFOX_RSA_2026';
    console.log('原始核心数据:', sensitiveData);

    // 1. 初始化RSA实例,生成密钥对(公钥+私钥)
    var rsa = new RSA();
    var rsaKey = rsa.genKey(); // 默认128位密钥
    console.log('RSA公钥:', rsaKey.publicKey);
    console.log('RSA私钥:', rsaKey.privateKey);

    // 2. 公钥加密(公钥可公开,任何人都可加密)
    var rsaEncrypted = rsa.encrypt(sensitiveData, rsaKey.publicKey);
    console.log('RSA公钥加密结果:', rsaEncrypted);

    // 3. 私钥解密(仅私钥持有者可解密)
    var rsaDecrypted = rsa.decrypt(rsaEncrypted, rsaKey.privateKey);
    console.log('RSA私钥解密结果:', rsaDecrypted);
    console.log('RSA加解密是否一致:', sensitiveData === rsaDecrypted);

    // 自定义加密模式测试
    var rsaCustom = new RSA('RSA/ECB/PKCS5Padding');
    var customEncrypted = rsaCustom.encrypt(sensitiveData, rsaKey.publicKey);
    var customDecrypted = rsaCustom.decrypt(customEncrypted, rsaKey.privateKey);
    console.log('自定义RSA模式解密结果:', customDecrypted);
}

3. 适用场景

  • 自动化脚本密钥交换:设备间安全传输对称加密密钥;
  • 高敏感数据加密:加密支付信息、核心配置、设备唯一标识;
  • 接口签名验证:公钥验签、私钥加签,保障接口请求合法性。

五、编码与压缩(Base64/Gzip):数据传输优化工具

除加密算法外,冰狐平台还提供 Base64 编解码、Gzip 压缩解压功能,解决自动化脚本中二进制数据传输、数据体积过大的问题,常与加密算法配合使用(如加密后 Base64 编码、数据压缩后加密)。

1. Base64 编解码

  • base64Encode(data, flag):字节数组编码为字符串,flag 可选配置(无填充、无换行等);
  • base64Decode(data, flag):字符串解码为字节数组。

2. Gzip 压缩解压

  • gzipCompress(data):字符串压缩为字节数组,减小数据体积;
  • gzipDecompress(data):字节数组解压为原始字符串。

3. Demo 源码(编码 + 压缩全流程测试)

// 冰狐智能辅助 Base64编解码+Gzip压缩解压测试脚本
function main() {
    var longText = '冰狐智能辅助是一款专注于移动自动化的工具平台,支持脚本编写、设备控制、数据加密等功能,广泛应用于自动化测试、批量操作、数据安全等场景。本文基于官方文档,详细讲解加解密API的使用方法,提供可直接运行的Demo源码,助力开发者快速落地安全自动化脚本。';
    console.log('原始长文本长度:', longText.length);

    // ========== 1. Gzip压缩解压 ==========
    // 压缩
    var gzipCompressed = gzipCompress(longText);
    console.log('Gzip压缩后字节数组长度:', gzipCompressed.length);

    // 解压
    var gzipDecompressed = gzipDecompress(gzipCompressed);
    console.log('Gzip解压后文本:', gzipDecompressed);
    console.log('压缩解压是否一致:', longText === gzipDecompressed);

    // ========== 2. Base64编解码 ==========
    // 字节数组转Base64(压缩后编码)
    var base64Encoded = base64Encode(gzipCompressed);
    console.log('Base64编码结果:', base64Encoded);

    // Base64解码为字节数组
    var base64Decoded = base64Decode(base64Encoded);
    // 解码后解压
    var finalText = gzipDecompress(base64Decoded);
    console.log('Base64解码+Gzip解压结果:', finalText);
    console.log('全流程是否一致:', longText === finalText);

    // Base64自定义flag测试(无填充)
    var base64NoPadding = base64Encode(gzipCompressed, 1);
    console.log('Base64无填充编码:', base64NoPadding);
}

4. 适用场景

  • 二进制数据传输:将加密后的字节数组转为 Base64 字符串,适配接口传输;
  • 大数据优化:长文本、配置文件 Gzip 压缩后存储 / 传输,节省流量;
  • 加密数据适配:加密结果为字节数组时,Base64 编码后便于存储展示。

六、综合实战

在实际自动化项目中,通常会组合使用多种加解密工具,实现「数据压缩→加密→编码→传输→解码→解密→解压」的全流程安全处理。以下是完整的综合 Demo,模拟自动化脚本中敏感数据的安全传输场景。

综合 Demo 源码

// 冰狐智能辅助 综合加解密实战脚本(安全数据传输全流程)
function main() {
    console.log('========== 冰狐智能辅助 综合加解密实战 ==========');
    // 原始敏感数据(自动化脚本核心配置)
    var originalData = {
        deviceId: 'ICEFOX_DEVICE_001',
        account: 'auto_test_001',
        password: 'auto@123456',
        apiKey: 'icefox_2026_api_key',
        taskConfig: '每日自动执行10次,间隔5分钟'
    };
    var originalStr = JSON.stringify(originalData);
    console.log('1. 原始数据:', originalStr);

    try {
        // 步骤1:Gzip压缩(减小体积)
        var compressed = gzipCompress(originalStr);
        console.log('2. Gzip压缩完成,字节长度:', compressed.length);

        // 步骤2:AES加密(对称加密,高效安全)
        var aes = new AES('AES/ECB/PKCS5Padding');
        var aesKey = aes.genKey();
        var encrypted = aes.encrypt(originalStr, aesKey);
        console.log('3. AES加密完成,加密结果:', encrypted);

        // 步骤3:Base64编码(适配传输)
        var encodedData = base64Encode(encrypted);
        console.log('4. Base64编码完成,传输数据:', encodedData);

        // 模拟数据传输(云端/设备间)
        console.log('========== 数据传输中 ==========');

        // 步骤4:Base64解码
        var decodedData = base64Decode(encodedData);

        // 步骤5:AES解密
        var decryptedStr = aes.decrypt(decodedData, aesKey);
        console.log('5. AES解密完成:', decryptedStr);

        // 步骤6:Gzip解压
        var decompressedStr = gzipDecompress(compressed);
        var finalData = JSON.parse(decompressedStr);
        console.log('6. 最终还原数据:', finalData);

        // 验证数据完整性
        console.log('========== 数据验证 ==========');
        console.log('数据是否完整:', originalStr === decryptedStr);
        console.log('设备ID匹配:', originalData.deviceId === finalData.deviceId);
        console.log('账号密码匹配:', originalData.password === finalData.password);
        toast('综合加解密实战执行成功,数据安全无误!');
    } catch (e) {
        console.error('加解密流程异常:', e);
        toast('执行失败:' + e.message);
    }
}

七、冰狐加解密 API 使用注意事项

  1. 密钥安全:对称加密密钥、RSA 私钥严禁硬编码在脚本中,建议通过冰狐平台「自定义数据」功能存储,避免泄露;
  2. 算法选择:普通数据用 AES/DES,高敏感数据用 RSA,数据校验用 HMAC-SHA256,平衡安全与效率;
  3. 参数规范:HMAC 算法必须配置secret,Base64 编解码需匹配flag参数,避免解码失败;
  4. 异常处理:加解密、压缩解压需添加try-catch,处理密钥错误、数据篡改、格式异常等问题;
  5. 模式兼容:跨平台 / 跨服务加解密时,需统一加密模式(如 AES/ECB/PKCS5Padding),确保解密成功。

八、总结

冰狐智能辅助平台的加解密 API功能全面、调用简单、适配性强,覆盖自动化脚本中的数据安全需求。从摘要算法的完整性校验,到对称 / 非对称加密的敏感数据保护,再到 Base64/Gzip 的传输优化,开发者可根据业务场景自由组合使用,无需关注底层实现,专注于自动化逻辑开发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值