S.J*_*son 0 javascript encryption google-bigquery google-cloud-platform
我在 BigQuery 中有一些加密列,我想使用 BigQuery 函数对其进行解密。
加密它们所使用的机制是 AES 256。所使用的向量以 UTF8 编码。生成的数据采用 Base64 加密。
我想要做的是使用函数解密 BigQuery 中传递给我的字段,而无需执行在其他地方解密它们然后将它们集成回 BigQuery 的额外步骤的麻烦。请注意,我在 BigQuery 中可以访问的加密列的类型为字符串。
我读到了一些可以在 BigQuery 中解密的函数,例如 AEAD.DECRYPT_BYTES 和 AEAD.DECRYPT_STRING,我想知道它们是否对我的情况有帮助。
有什么办法可以做到这一点吗?如果是这样,您能引导我完成整个过程吗?
PS:这些不是实际的键和向量值,只是一个类似的示例。
以下是如何使用带有 PKCS 填充的 AES-CBC 进行解密的示例。我不清楚您的示例中是否有有效的密钥/密文,因为我无法vector使用该密钥进行解密:
SELECT
AEAD.DECRYPT_STRING(
KEYS.ADD_KEY_FROM_RAW_BYTES(
b'', 'AES_CBC_PKCS', FROM_BASE64('dfrBArd8b6YZFDGTYrZtQa==')),
FROM_BASE64('/FCM1XMvr+rHwZx'), '');
Run Code Online (Sandbox Code Playgroud)
这是一个有效的独立示例:
WITH EncryptedInput AS (
SELECT FROM_HEX('deed2a88e73dccaa30a9e6e296f62be27db30db16f76d3f42c85d31db3f46376') AS ciphertext,
b'1234567890123456' AS key UNION ALL
SELECT FROM_HEX('deed2a88e73dccaa30a9e6e296f62be2ea3f4c2ac2c8863306fd9ff87e10497b61d86111fafd0d0fe0046d7e199044ec'),
b'1234567890123456' UNION ALL
SELECT FROM_HEX('0102030405060708090a0b0c0d0e0f1073d8712936ea9899952e97284288c1cd7b7cbfff0a53ae87a19454f7d84082a07a25fc01031b5e08c6b7ce6520989b82'),
b'98765432101234567890123456789012' UNION ALL
SELECT NULL, b'1234567890123456' UNION ALL
SELECT FROM_HEX('deed2a88e73dccaa30a9e6e296f62be27db30db16f76d3f42c85d31db3f46376'),
NULL
)
SELECT AEAD.DECRYPT_STRING(KEYS.ADD_KEY_FROM_RAW_BYTES(b'', 'AES_CBC_PKCS', key), ciphertext, '') AS plaintext
FROM EncryptedInput;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7448 次 |
| 最近记录: |