cryptoEncrypt

Version 25.1.9222


cryptoEncrypt


使用“AES”算法加密指定的数据或文件。

必需参数

  • keyVaultEntry: 用于密钥的加密保管库项的名称。存储在此保管库项中的值必须与 keyVaultEntryFormat 中设置的编码匹配,并满足所选算法的长度要求。
  • ivVaultEntry: 用于初始化向量 (IV) 的加密保管库项的名称。存储在此保管库项中的值必须与 ivVaultEntryFormat 中设置的编码匹配,并满足所选算法的长度要求。

可选参数

  • algorithm: 用于加密的算法的名称。AES 是目前唯一支持的值。它需要 128 位密钥长度。
  • cipherMode: 用于处理和加密数据的方法。可接受的值包括:CBCECBOFBCFBCTS8OFB8CFBGCMCTRXTS。默认值为 CBC
  • paddingMode: 用于在加密消息时处理多余或缺失数据的方法,确保正确构造明文。可接受的值包括:PKCS7ZerosNoneANSIX923ISO10126。默认值为 PKCS7
  • keyVaultEntryFormat: keyVaultEntry 项中存储的值的编码。可接受的值包括:HEXBASE648BITRAW。默认值为 HEX
  • ivVaultEntryFormat: 存储在 ivVaultEntry 项中的值的编码。可接受的值包括:HEXBASE648BITRAW。默认值为 HEX
  • data: 要加密的数据。
  • file: 要加密的文件。
  • outFile: 用于存储加密数据的文件。
  • inFormat: 用于加密输入数据的格式。可接受的值包括:HEXBASE648BITRAW。默认值为 HEX
  • outFormat: 用于加密输出数据的格式。可接受的值为:HEXBASE648BITRAW。默认值为 HEX

输出属性

  • data: 如果未指定 outFile,则为加密数据。
  • outFile: 如果指定了 outFile,则为包含加密数据的文件。

示例

在以下示例中,cryptoEncrypt 操作用于加密特定值。它对 keyVaultEntryFormat 和 keyVaultEntryFormat 参数使用默认 AES 算法和默认 HEX 编码。由于它使用默认值,因此无需明确设置这些参数。这意味着 keyVaultEntry 和 ivVaultEntry 的“key”和“iv”保管库项目中存储的值必须恰好是 128 位 HEX 编码值。例如:

  • 存储在“key”保管库项目中的值:7A3F9D5C1E8B6A407D2E4C9F5B1A6D3E
  • 存储在“iv”保管库项目中的值:C1D4A7F82E395B6C4D7A1E3F9B02586D

如果未能使用正确长度或编码的值,则会导致加密过程中出现错误。

<!-- 为了便于说明,我们假设该值来自 API 响应。-->
<arc:set attr="secret.value" value="FooBar" />

<!-- 设置 Key 和 IV 值。这些是加密保险库项目的名称。" -->
<!-- 如果使用默认 AES 算法,则每个保险库项目中存储的值需要为 128 位十六进制值。" -->
<arc:set attr="input.keyVaultEntry" value="key"/>
<arc:set attr="input.ivVaultEntry" value="iv"/>

<!-- 默认算法为 AES -->
<arc:set attr="input.algorithm" value="AES" />

<!-- 传入输入项并调用 cryptoEncrypt -->
<arc:set attr="input.data" value="[secret.value]"/>  
<arc:call op="cryptoEncrypt" in="input" out="result" >
  <!-- 可以在此处使用新加密的值/数据。此处使用消息标头。 -->
  <arc:set attr="output.Header:MyEncryptedValue" value="[result.data]" />
</arc:call>

<!-- 将带有新标头的输入消息推送为输出。 -->
<arc:set attr="output.filepath" value="[Filepath]" />
<arc:push item="output" />