MySQL Keyring 支持不同类型(加密算法)和长度的密钥:
可用的密钥类型取决于安装的密钥环插件。
允许的密钥长度受多种因素影响:
一般密钥环可加载函数接口限制(对于使用 第 6.4.4.15 节“通用密钥环密钥管理函数”中描述的密钥环函数之一管理的密钥),或来自后端实现的限制。这些长度限制可能因键操作类型而异。
除了一般限制外,个别密钥环插件可能会对每种密钥类型的密钥长度施加限制。
表 6.32,“通用密钥环密钥长度限制”显示了通用密钥长度限制。(下限
keyring_aws
由 AWS KMS 接口而非密钥环函数强加。)对于密钥环插件,
表 6.33“密钥环插件密钥类型和长度”显示了每个密钥环插件允许的密钥类型,以及任何特定于插件的密钥类型密钥长度限制。对于大多数密钥环组件,通用密钥长度限制适用并且没有密钥类型限制。
component_keyring_oci
(与
keyring_oci
插件一样)只能生成AES
大小为 16、24 或 32 字节的类型的键。
表 6.32 通用密钥环密钥长度限制
按键操作 | 最大密钥长度 |
---|---|
生成密钥 |
16,384 字节(MySQL 8.0.18 之前为 2,048);1,024 为
|
存储密钥 |
16,384 字节(MySQL 8.0.18 之前为 2,048);4,096 为
|
获取密钥 |
16,384 字节(MySQL 8.0.18 之前为 2,048);4,096 为
|
表 6.33 Keyring 插件密钥类型和长度
插件名称 | 允许的密钥类型 | 插件特定的长度限制 |
---|---|---|
keyring_aws |
|
16、24 或 32 字节 没有任何 |
keyring_encrypted_file |
|
没有任何 没有任何 没有任何 没有任何 |
keyring_file |
|
没有任何 没有任何 没有任何 没有任何 |
keyring_hashicorp |
|
没有任何 没有任何 没有任何 没有任何 |
keyring_oci |
|
16、24 或 32 字节 |
keyring_okv |
|
16、24 或 32 字节 没有任何 |
SECRET
从MySQL 8.0.19 开始可用
的密钥类型旨在使用 MySQL 密钥环用于敏感数据的通用存储,并且受大多数密钥环组件和密钥环插件的支持。密钥环在存储和检索时将数据加密和解密SECRET
为字节流。
SECRET
涉及密钥类型
的示例密钥环操作
:
SELECT keyring_key_generate('MySecret1', 'SECRET', 20);
SELECT keyring_key_remove('MySecret1');
SELECT keyring_key_store('MySecret2', 'SECRET', 'MySecretData');
SELECT keyring_key_fetch('MySecret2');
SELECT keyring_key_length_fetch('MySecret2');
SELECT keyring_key_type_fetch('MySecret2');
SELECT keyring_key_remove('MySecret2');