如何解密 BigQuery 中的列?

我在 BigQuery 中有一些加密列,我想使用 BigQuery 函数对其进行解密。

用于加密它们的机制是 AES 256。使用的向量以 UTF8 编码。生成的数据在 Base64 中加密。

我想要做的是使用函数解密在 BigQuery 中传递给我的字段,而无需麻烦地在别处解密它们,然后将它们集成回 BigQuery。请注意,我在 BigQuery 中可以访问的加密列是字符串类型。

我读了一些可以在 BigQuery 中解密的函数,如 AEAD.DECRYPT_BYTES 和 AEAD.DECRYPT_STRING,我想知道它们是否对我有帮助。

有没有办法做到这一点?如果是这样,你能引导我完成整个过程吗?

PS:那些不是实际的键值和向量值,只是一个相似的例子。


慕斯709654
浏览 151回答 2
2回答

紫衣仙女

以下是如何使用带有 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'), '');这是一个有效的独立示例: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 plaintextFROM EncryptedInput;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript