新闻详情

新闻详情

首页 / 资讯中心 / 详情

MaxCompute中加密与解密函数

发布时间:2026/11/15 2:56:25来源:尧图网络
MaxCompute中加密与解密函数
文章目录一、分类总览1、函数分类2、全部函数二、加密能力基础1、定义2、区别3、简单记忆4、案例三、单一密钥加解密类1、定义2、区别3、简单记忆4、案例四、基础 Keyset 管理类1、定义2、区别3、简单记忆4、案例五、KMS封装Keyset管理类1、定义2、区别3、简单记忆4、案例六、增强加解密类1、定义2、区别3、简单记忆4、案例七、最容易混淆的函数对比八、常用案例1、身份证字段加密后存储2、解密后返回STRING3、创建Keyset4、轮转Keyset5、查看Keyset详情6、使用Keyset加密九、使用注意事项1、定义2、区别3、简单记忆4、案例十、参考资料一、分类总览1、函数分类分类主要解决的问题代表函数1、单一密钥加解密类使用单一BINARY密钥直接加密、解密字段SYM_ENCRYPT、SYM_DECRYPT2、基础 Keyset 管理类创建、追加、查看、恢复和轮转 KeysetNEW_KEYSET、ADD_KEY_TO_KEYSET、KEYSET_TO_JSON、KEYSET_FROM_JSON、ROTATE_KEYSET3、KMS 封装 Keyset 管理类使用 KMS 对 Keyset 再加密并支持重新封装、轮转和使用NEW_WRAPPED_KEYSET、REWRAP_KEYSET、ROTATE_WRAPPED_KEYSET、USE_WRAPPED_KEYSET4、增强加解密类使用基础 Keyset 或封装 Keyset 对业务数据加密、解密ENHANCED_SYM_ENCRYPT、ENHANCED_SYM_DECRYPT2、全部函数分类函数功能1、单一密钥加解密类SYM_ENCRYPT对指定列做随机性加密返回BINARY密文1、单一密钥加解密类SYM_DECRYPT对已随机加密的数据解密返回BINARY明文2、基础 Keyset 管理类NEW_KEYSET按指定算法创建新的 Keyset2、基础 Keyset 管理类ADD_KEY_TO_KEYSET向已有 Keyset 添加密钥并设置为主密钥2、基础 Keyset 管理类KEYSET_TO_JSON将BINARYKeyset 转成可读 JSON2、基础 Keyset 管理类KEYSET_FROM_JSON将 JSON Keyset 转回BINARY2、基础 Keyset 管理类ROTATE_KEYSET自动生成新密钥并将其设置为主密钥3、KMS 封装 Keyset 管理类NEW_WRAPPED_KEYSET使用 KMS 创建封装 Keyset3、KMS 封装 Keyset 管理类REWRAP_KEYSET使用新的 KMS 密钥重新封装 Keyset3、KMS 封装 Keyset 管理类ROTATE_WRAPPED_KEYSET重新封装 Keyset同时支持更新数据密钥算法3、KMS 封装 Keyset 管理类USE_WRAPPED_KEYSET将封装 Keyset 转换为可供加解密函数使用的基础 Keyset4、增强加解密类ENHANCED_SYM_ENCRYPT使用指定 Keyset 加密数据4、增强加解密类ENHANCED_SYM_DECRYPT使用与加密时一致的 Keyset 解密数据二、加密能力基础模式密钥管理方式适用场景单一密钥用户自行保存一个密钥简单字段随机加密基础 Keyset一个 Keyset 中可维护多个数据密钥需要密钥轮转KMS 封装 KeysetKMS 密钥再次加密 Keyset对密钥安全要求更高1、定义MaxCompute 的加密能力可以分成三层单一密钥直接传入一个BINARY密钥。基础 Keyset由 MaxCompute 管理一组数据密钥。KMS 封装 Keyset再使用 KMS 对 Keyset 进行封装保护。2、区别对比区别单一密钥 vs Keyset一个密钥 vs 一组可轮转密钥基础 Keyset vs 封装 KeysetKeyset 本身直接保存 vs 再由 KMS 密钥保护SYM_*vsENHANCED_SYM_*直接传单一密钥 vs 使用 KeysetAES-GCM-256随机性加密相同明文多次加密结果可以不同AES-SIV-CMAC-*Keyset 支持的另一类密钥算法3、简单记忆简单字段加密SYM_ENCRYPT / SYM_DECRYPT。多密钥管理Keyset。更安全的 Keyset 管理KMS Wrapped Keyset。Keyset 加解密业务数据ENHANCED_SYM_*。4、案例-- 使用扩展数据类型前开启 MaxCompute 2.0 数据类型SETodps.sql.type.system.odps2true;三、单一密钥加解密类函数功能SYM_ENCRYPT对指定列做随机性加密返回BINARY密文SYM_DECRYPT对已随机加密的数据解密返回BINARY明文1、定义SYM_ENCRYPT使用一个BINARY密钥对STRING或BINARY明文进行随机性加密。SYM_DECRYPT使用相同密钥和相同加密模式解密BINARY密文。当前支持的加密模式包括AES-GCM-256密钥长度为 256 bits。2、区别对比区别SYM_ENCRYPT明文 → 密文SYM_DECRYPT密文 → 明文输入加密支持STRING / BINARY解密输入为BINARY输出两者都返回BINARYAAD加密时用了 AAD解密时必须使用相同 AAD随机性加密的特点相同明文、相同密钥多次加密得到的密文也可能不同。3、简单记忆ENCRYPT 加密。DECRYPT 解密。密钥和 AAD 要前后一致。4、案例-- 加密结果为 BINARY通常再 BASE64 方便存储SELECTBASE64(SYM_ENCRYPT(0001,CAST(b75585cf321cdcad42451690cdb7bfc4ASBINARY)))ASencrypted_value;-- 解密结果转回 STRINGSELECTCAST(SYM_DECRYPT(UNBASE64(encrypted_value),CAST(b75585cf321cdcad42451690cdb7bfc4ASBINARY))ASSTRING)ASplain_valueFROMsource_table;四、基础 Keyset 管理类函数功能NEW_KEYSET按指定算法创建新的 KeysetADD_KEY_TO_KEYSET向 Keyset 新增密钥KEYSET_TO_JSONKeyset 转 JSONKEYSET_FROM_JSONJSON 转 KeysetROTATE_KEYSET自动生成并切换主密钥1、定义Keyset 是一个可保存多个数据密钥的密钥集合。支持的主要算法类型包括AES-GCM-256AES-SIV-CMAC-128AES-SIV-CMAC-2562、区别函数作用NEW_KEYSET从零创建 KeysetADD_KEY_TO_KEYSET手工加入指定密钥ROTATE_KEYSET系统自动生成新密钥并设为主密钥KEYSET_TO_JSON主要用于查看 Keyset 内容KEYSET_FROM_JSON将 JSON 表示恢复成可用 KeysetADD_KEY_TO_KEYSET与ROTATE_KEYSET前者由用户提供raw_key。后者由系统自动生成新密钥。3、简单记忆NEW 新建。ADD 手工加密钥。ROTATE 自动轮转。TO_JSON 查看。FROM_JSON 恢复。4、案例-- 创建 KeysetSELECTHEX(NEW_KEYSET(AES-GCM-256,user info key))ASkeyset_hex;-- 增加密钥并设为主密钥SELECTHEX(ADD_KEY_TO_KEYSET(UNHEX(keyset_hex),AES-SIV-CMAC-128,UNHEX(b75585cf321cdcad42451690cdb7bfc49c26092f60f854e72d43244c55620a3d),new key))ASnew_keyset_hexFROMkey_table;-- Keyset 转 JSONSELECTKEYSET_TO_JSON(UNHEX(keyset_hex))FROMkey_table;-- JSON 转回 KeysetSELECTHEX(KEYSET_FROM_JSON(json_keyset))FROMkey_table;-- 自动轮转主密钥SELECTHEX(ROTATE_KEYSET(UNHEX(keyset_hex),AES-SIV-CMAC-256,rotate key))FROMkey_table;五、KMS封装Keyset管理类函数功能NEW_WRAPPED_KEYSET创建 KMS 封装 KeysetREWRAP_KEYSET使用新 KMS 密钥重新封装ROTATE_WRAPPED_KEYSET重新封装并轮转数据密钥USE_WRAPPED_KEYSET将封装 Keyset 转为加解密可用形式1、定义KMS 封装 Keyset 的核心思路数据由 Keyset 中的数据密钥加密Keyset 本身再由 KMS 用户主密钥保护。这样无需直接查看或保存原始数据加密密钥。2、区别函数核心作用NEW_WRAPPED_KEYSET第一次创建封装 KeysetREWRAP_KEYSET更换外层 KMS 密钥ROTATE_WRAPPED_KEYSET不仅重新封装还能更新内部数据密钥算法USE_WRAPPED_KEYSET解封装为后续加解密函数可使用的 KeysetREWRAP_KEYSETvsROTATE_WRAPPED_KEYSETREWRAP主要改变外层 KMS 封装。ROTATE_WRAPPED还可以更新数据密钥算法。3、简单记忆NEW_WRAPPED 创建封装密钥集。REWRAP 换外包装。ROTATE_WRAPPED 换包装 轮换里面的密钥。USE_WRAPPED 解开后拿来使用。4、案例-- 创建封装 KeysetSELECTHEX(NEW_WRAPPED_KEYSET(acs:kms:cn-hangzhou:UserId:key/CmkId,acs:ram::UserId:role/kms,AES-GCM-256,user info key))ASwrapped_keyset;-- 使用新 KMS 密钥重新封装SELECTHEX(REWRAP_KEYSET(acs:kms:cn-hangzhou:UserId:key/NewCmkId,acs:ram::UserId:role/kms,UNHEX(wrapped_keyset)))FROMkey_table;-- 重新封装并轮转数据密钥SELECTHEX(ROTATE_WRAPPED_KEYSET(acs:kms:cn-hangzhou:UserId:key/CmkId,acs:ram::UserId:role/kms,UNHEX(wrapped_keyset),AES-GCM-256,rotate key))FROMkey_table;-- 获取可用于加解密的基础 KeysetSELECTUSE_WRAPPED_KEYSET(acs:kms:cn-hangzhou:UserId:key/CmkId,acs:ram::UserId:role/kms,UNHEX(wrapped_keyset))FROMkey_table;六、增强加解密类函数功能ENHANCED_SYM_ENCRYPT使用指定 Keyset 加密数据ENHANCED_SYM_DECRYPT使用与加密时一致的 Keyset 解密数据1、定义增强加解密函数使用 Keyset而不是直接传入单个原始密钥。ENHANCED_SYM_ENCRYPTKeyset 明文 →BINARY密文。ENHANCED_SYM_DECRYPT同一 Keyset 密文 →BINARY明文。Keyset 可以来自NEW_KEYSETUSE_WRAPPED_KEYSET2、区别对比区别SYM_ENCRYPT直接传单一密钥ENHANCED_SYM_ENCRYPT传 KeysetSYM_DECRYPT单一密钥解密ENHANCED_SYM_DECRYPTKeyset 解密基础 Keyset可直接作为参数封装 Keyset通常先通过USE_WRAPPED_KEYSET获取可使用形式3、简单记忆SYM_* 单密钥。ENHANCED_SYM_* Keyset。Wrapped Keyset 先USE再加解密。4、案例-- 使用基础 Keyset 加密SELECTBASE64(ENHANCED_SYM_ENCRYPT(UNHEX(keyset_hex),0001))ASencrypted_valueFROMkey_table;-- 使用基础 Keyset 解密SELECTCAST(ENHANCED_SYM_DECRYPT(UNHEX(keyset_hex),UNBASE64(encrypted_value))ASSTRING)ASplain_valueFROMsource_table;七、最容易混淆的函数对比函数组合最核心区别SYM_ENCRYPTvsENHANCED_SYM_ENCRYPT单一密钥 vs KeysetSYM_DECRYPTvsENHANCED_SYM_DECRYPT单一密钥解密 vs Keyset 解密NEW_KEYSETvsNEW_WRAPPED_KEYSET基础 Keyset vs KMS 封装 KeysetADD_KEY_TO_KEYSETvsROTATE_KEYSET手工加入密钥 vs 系统自动生成并轮转KEYSET_TO_JSONvsKEYSET_FROM_JSONKeyset→JSON vs JSON→KeysetREWRAP_KEYSETvsROTATE_WRAPPED_KEYSET更换 KMS 封装 vs 更换封装并轮转数据密钥NEW_WRAPPED_KEYSETvsUSE_WRAPPED_KEYSET创建封装 Keyset vs 使用封装 KeysetBASE64vsHEX都可把二进制变成可存储字符串但编码方式不同AES-GCM-256vsAES-SIV-CMAC-*不同加密算法类型八、常用案例1、身份证字段加密后存储SELECTid,BASE64(SYM_ENCRYPT(id_card_no,CAST(b75585cf321cdcad42451690cdb7bfc4ASBINARY)))ASid_card_no_encryptFROMuser_info;2、解密后返回STRINGSELECTCAST(SYM_DECRYPT(UNBASE64(id_card_no_encrypt),CAST(b75585cf321cdcad42451690cdb7bfc4ASBINARY))ASSTRING)ASid_card_noFROMuser_info;3、创建KeysetSELECTHEX(NEW_KEYSET(AES-GCM-256,user info))ASkeyset_hex;4、轮转KeysetSELECTHEX(ROTATE_KEYSET(UNHEX(keyset_hex),AES-GCM-256,2026 rotate))FROMkey_table;5、查看Keyset详情SELECTKEYSET_TO_JSON(UNHEX(keyset_hex))FROMkey_table;6、使用Keyset加密SELECTBASE64(ENHANCED_SYM_ENCRYPT(UNHEX(keyset_hex),id_card_no))ASencrypted_valueFROMuser_infoCROSSJOINkey_table;九、使用注意事项1、定义加密函数涉及密钥、BINARY类型、KMS 权限以及数据解密能力需要比普通 SQL 函数更关注安全和权限管理。2、区别主要注意使用BINARY等扩展类型时可先开启SET odps.sql.type.system.odps2true;单一密钥方案中密钥需要用户自行安全保存。密钥丢失后可能导致密文无法恢复。不建议将明文密钥直接写在长期保存或共享的 SQL 中。官方建议可将密钥保存在受控表中并通过权限控制和安全视图隔离密钥。KMS 封装 Keyset 需要提前配置 KMS、RAM 角色及 MaxCompute 访问权限。加密和解密时使用的 Keyset / AAD 必须匹配。3、简单记忆密钥不要散落在 SQL。加密前先规划密钥保存和轮转。解密权限要比查询密文权限更严格。高安全要求优先考虑 KMS 封装 Keyset。4、案例-- 开启 MaxCompute 2.0 类型系统SETodps.sql.type.system.odps2true;十、参考资料阿里云 MaxCompute 官方文档https://help.aliyun.com/zh/maxcompute/encryption-and-decryption-functions
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/14 3:51:47

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/15 2:04:12

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/14 3:51:43

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉