使用 JavaScript BigQuery UDF 解密/解码 AES256 [重复]

Posted

技术标签:

【中文标题】使用 JavaScript BigQuery UDF 解密/解码 AES256 [重复]【英文标题】:decrypting/decoding AES256 using JavaScript BigQuery UDF [duplicate] 【发布时间】:2019-09-26 08:43:16 【问题描述】:

我在 BigQuery 表上有一个加密列,我也需要对其进行解密。 用于加密列的加密机制是 AES 256。 这是用于加密过程的代码。

但是,这不起作用。我不知道我做错了什么,或者我是否使用错误的库,或者我的解密逻辑是否 javascript 有缺陷! 我希望就如何正确执行此操作并使其发挥作用获得一些指导。

【问题讨论】:

再说一次,只是为了清楚。密钥是纯文本,而不是 Base64。那么什么是向量呢?您能否为使用的明文、加密和密钥提供更多示例对。 是加密过程中使用的初始化向量(iv) 至于更多的例子,你可以使用加密的方法来获取一些,因为我的数据是敏感的! 【参考方案1】:

也许这对你有帮助:

WITH EncryptedInput AS (
  SELECT FROM_BASE64('IYkyGxYaNgHpnZWgwILMalVFmLWFgTCHCZL9263NOcfSo5lBjAzOZAtF5bF++R0Bi+9c9E+p3VEr/xvj4oABtRWVJ2wlWzLbYC2rKFk5iapFhb7uZCUpO4w4Su3a5QFa2vInjYueziRoqySZd/DpstMJ8rsJ94VGizFFFZ1l0sw1ax+wfBAv5+wHs/hlnHi/ea66KBO3rgXKahvV28h+4bh5etc8RCrmiiNbfg6Oj0jQJDjdYIdW8T9YPOI9E1hih8lbfRnMWcOFJgYekfLpoy5LI525UGnlM46J1k6ekLqsn9FqvbiOOoLgqa4YqBm1i9P0ePyjkME+t+RiL8xXX+ItgOYr9G7kM64wlTJPCW8B/crmUdmGzQNC/hD/u/8wfHBS2f8u6OtQMG/+Kpk1oju8lcUZGI/4S8A6/OuktvQr2zgnbs2aADMrM37Oait/pJ3G73S7NwVT8EaK+X43c0C/fUvW2/bD/rqCNpAh9WQlz4Cj6JHwjbmwuind6aCimF1tHjXuR9FXu+g17sPT4ZkKZ6aeBG+m170XdCGn2hVM0wH1rh3VeCG2u/JFqfuGKGSoqeHeNY/icu9pEhtZDzHd7aPoaMXcWvXC9PjooBf7GM1EPacSdnon1kBobjtKSt1l15DjO5TMrJoX7VO7GotQwo+uI/u5Kop01hBXxyxyggl1/8N0ESohPJoqLDrIwvbGK5kW4B49F***x9CMvjZDdSsoxPAh+hx6SPe8Hj0Nx4bRs06cbtOkte/V8QSYIqjiJDleEqPrdiKlvgToZz9L29ZR/3Ln65qU1sq7q9c0SEYxIopV7TdTjFS7y76zDPFZkhzc3DjfLtJo/M1hdtt648APcZdmAIgWH6fh3eJZ0qbiPh8RStYH7I2COmnlMw4+t/B5mlhYVSgwPK2Ir736Mh+P9Bw0fF8r9Ghhs4AJzpU0RiK9d1tCsrLfK/hSRwTXhtsSB6eDWEGkO7oeEIz43mgn0sv3SrA9JNHzYkg=') as ciphertext,
    FROM_HEX('2e35f242a46d67eeb74aabc37d5e5d05') AS key
)
SELECT AEAD.DECRYPT_STRING(KEYS.ADD_KEY_FROM_RAW_BYTES(b'', 'AES_CBC_PKCS', key), ciphertext, '') AS plaintext
FROM EncryptedInput;

返回:

   accessKey: "ASIAJ32FWBMGSR7NDWHQ",  secretKey: "4U0zxuLaqs0DzGNiyI8nyoSKhA1MhptEELEvu+lY",  securityToken: "AQoDYXdzEEYaoAP/WNFstcpRwvTfU/yJXp4aOJnpD7yd/1QLp1n8yd90WGHStIqMBULGDk4cy5UP/+sQeeUWdy/Ll25HQDNoJ/aoPCgcl7BRAZULhoWeminnVcKZB5oeaTHP+gqZfTgcyycwm+qg6GO+mmxnE3cxTBqyCjBFajtU5IEvAi26uWzX+RGukDHzeT41Cdy2KuoEmiQT1Spa9nT/yTvi2ctzR7ImpfZCZZHqsIUL7YspLH1bKb6fm3W8JgyaSopRRlywkjKRFnKfz2cJFv4mMZkHWaID0asFSW/W5nYKErR+QTAgqV+sykGBcIPHC6uliaxrz0h9nRUuBA+WsVSK51dc6jQklPyCQkcZ6Ps13iddow4jqAvROhRBKrXufmShwrs2X9q1SWzkKnECsVirni+l5c5zkmrJgkOr9oK4rPtaJYSbNozKxpZwm2ao0EPsFKO7QWvkEu9jfWhGMUhA/EMJEdQXwKvHgNmXhflMpg1Y4qaChquVGGwP6BK7Pmnyd+6cHZecHDr777kmCFZun9wCSXLR+2qgYLxjMB6ZqkOXHnLeliCUwoiJBQ==",  expirationDate: "1361277588000"

【讨论】:

以上是关于使用 JavaScript BigQuery UDF 解密/解码 AES256 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

nodejs,javascript过滤emoj表情

在 google bigquery 中,如何使用 google python 客户端使用 javascript UDF

使用 JavaScript BigQuery UDF 解密/解码 AES256 [重复]

如何为 Google BigQuery 转义 JavaScript UDF 中的字符?

思维导图四(SpringBootSpringSecuritySpringCloud NetflixSwaggerDubbozookeeper)

BigQuery JavaScript UDF 使用 SQL 查询中的值调用数组