将CREATE SYMMETRIC KEY A4group25 WITH IDENTIFIER='group25' ALGORITHM = DES ENCRYPTION BY PASSWORD = 'password'; UPDATE PRODUCT SET Price = dbms_obfuscation_toolkit.DESENCRYPT(UTL_RAW.CAST_TO_RAW(Price), 1, UTL_RAW.CAST_TO_RAW('group25')) WHERE Price IS NOT NULL;改为AES算法
时间: 2023-12-06 15:40:09 浏览: 124
可以使用以下SQL语句将其改为使用AES算法:
```
CREATE SYMMETRIC KEY A4group25 WITH IDENTIFIER='group25' ALGORITHM = AES128 ENCRYPTION BY PASSWORD = 'password';
UPDATE PRODUCT SET Price = dbms_obfuscation_toolkit.AES_ENCRYPT(UTL_RAW.CAST_TO_RAW(Price), 1, UTL_RAW.CAST_TO_RAW('group25')) WHERE Price IS NOT NULL;
```
注意,这里使用了AES128算法,你可以根据需要选择使用AES192或AES256算法。另外,如果数据库版本较老,可能不支持AES算法,则需要升级数据库版本。
相关问题
改正:CREATE SYMMETRIC KEY A4group25 WITH IDENTIFIER='group25' ALGORITHM = DES ENCRYPTION BY PASSWORD = 'password'; UPDATE PRODUCT SET Price = dbms_obfuscation_toolkit.DESENCRYPT(UTL_RAW.CAST_TO_RAW(Price), 1, UTL_RAW.CAST_TO_RAW('group25')) WHERE Price IS NOT NULL;
修改后的代码如下所示:
```
CREATE SYMMETRIC KEY A4group25 WITH IDENTIFIER='group25' ALGORITHM = DES ENCRYPTION BY PASSWORD = 'password';
UPDATE PRODUCT SET Price = dbms_obfuscation_toolkit.DES3Encrypt(UTL_RAW.CAST_TO_RAW(Price), 1, UTL_RAW.CAST_TO_RAW('group25')) WHERE Price IS NOT NULL;
```
说明:
- DES 算法已经不再安全,建议使用更安全的算法,比如 AES。
- `dbms_obfuscation_toolkit.DESENCRYPT` 已经过期,建议使用 `dbms_obfuscation_toolkit.DES3Encrypt`。
- 将 `Price` 字段加密后的值存入数据库中,需要使用 `dbms_obfuscation_toolkit.DES3Encrypt` 函数,其中第一个参数为要加密的原始数据,第二个参数为加密模式,比如 ECB、CBC 等,这里选择了 ECB 模式,第三个参数为加密使用的密钥标识符。
改正代码:CREATE SYMMETRIC KEY A4group25 IDENTIFIED BY group25 ENCRYPTION BY DES;
修改后的代码:
CREATE SYMMETRIC KEY A4group25
WITH IDENTIFIER = 'group25'
ALGORITHM = DES
ENCRYPTION BY PASSWORD = 'password';
请注意,DES算法已经被认为是不安全的,不建议在生产环境中使用。此外,在实际使用中,应该使用更复杂的密码,而不是像这个例子中使用的简单密码。
阅读全文