达梦(DM)数据库存储加密

这篇具有很好参考价值的文章主要介绍了达梦(DM)数据库存储加密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这里主要讲述DM数据库存储加密中比较常用也比较容易理解的非透明加密相关内容。

非透明加密

引用官方的话说:DM 对非透明加密的支持是通过对用户提供加解密接口实现的。用户在使用非透明加密时,需要提供密钥并调用加解密接口。采用非透明加密可以保证个人私密数据不被包括 DBA 在内的其他人获取。
非透明加密通过用户调用存储加密函数来进行,DM 提供了一系列的存储加密函数,还提供了一个数据加密包 DBMS_OBFUSCATION_TOOLKIT。
简单的说:就是DM数据库提供了存储加密函数,用户调用存储加密函数对指定的数据进行加解密操作。

CFALGORITHMSENCRYPT

对指定类型的明文进行加密,并返回密文,密文数据类型和 SRC 类型相同,语法格式

CFALGORITHMSENCRYPT(
    SRC VARCHAR/TEXT/CLOB,
    ALGORITHM INT,
    KEY VARCHAR
)

参数说明:
SRC 需要被加密明文的类型数据
ALGORITHM 加密算法 ID,不可以为 NULL。加密算法对应的 ID 可通过查询 V$CIPHERS 得到
KEY 采用的密钥,不可以为 NULL
获取当前DM数据库支持的加密算法

SELECT * FROM V$CIPHERS;

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密
执行加密操作

select CFALGORITHMSENCRYPT('111111',514,'secret key');

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密

CFALGORITHMSDECRYPT

对密文进行解密,并得到加密前的相同数据类型的明文,语法格式

CFALGORITHMSDECRYPT(

    SRC VARCHAR/TEXT/CLOB,

    ALGORITHM INT,

    KEY VARCHAR

)

参数说明:
SRC 需要被解密密文的数据类型
ALGORITHM 加密算法 ID,不可以为 NULL。加密算法对应的 ID 可通过查询 V$CIPHERS 得到
KEY 采用的密钥,不可以为 NULL
执行解密操作

select CFALGORITHMSDECRYPT('9FF46AA8D86FB25ADED775837F400BB5FE',514,'secret key');

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密

SF_ENCRYPT_BINARY

对 VARBINARY 类型明文进行加密,并返回密文,语法格式

SF_ENCRYPT_BINARY(

    SRC VARBINARY,

    ALGORITHM INT,

    KEY VARCHAR,

    IV VARCHAR

)

参数说明:
SRC 需要被加密的 VARBINARY 类型数据
ALGORITHM 加密算法 ID,不可以为 NULL。加密算法对应的 ID 可通过查询 V$CIPHERS 得到
KEY 采用的密钥,不可以为 NULL
IV 采用的初始化矢量,可以为 NULL
加密语句

select SF_ENCRYPT_BINARY(0x12345678EF,514,'secret key',NULL);

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密

SF_DECRYPT_TO_BINARY

对密文进行解密,并得到加密前的 VARBINARY 类型明文,语法格式

SF_DECRYPT_TO_BINARY(

    SRC VARBINARY,

    ALGORITHM INT,

    KEY VARCHAR,

    IV VARCHAR

)

参数说明:
SRC 需要被解密的 VARBINARY 类型密文
ALGORITHM 加密算法 ID,不可以为 NULL。加密算法对应的 ID 可通过查询 V$CIPHERS 得到
KEY 采用的密钥,不可以为 NULL
IV 采用的初始化矢量,可以为 NULL
解密语句

select SF_DECRYPT_TO_BINARY('0x78AAAC21D0A2875AB86DDF16D9E0C063',514,'secret key',NULL);

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密

SF_ENCRYPT_CHAR

对 VARCHAR 类型明文进行加密,并返回密文,语法格式

SF_ENCRYPT_CHAR(

    SRC VARCHAR,

    ALGORITHM INT,

    KEY VARCHAR,

    IV VARCHAR

)

参数说明:
SRC 需要被加密的 CHAR/VARCHAR 类型数据
ALGORITHM 加密算法 ID,不可以为 NULL。加密算法对应的 ID 可通过查询 V$CIPHERS 得到
KEY 采用的密钥,不可以为 NULL
IV 采用的初始化矢量,可以为 NULL
加密语句

select SF_ENCRYPT_CHAR('111111',514,'secret key',NULL);

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密

SF_DECRYPT_TO_CHAR

对密文进行解密,并得到加密前的 VARCHAR 类型明文,语法格式

SF_DECRYPT_TO_CHAR(

    SRC VARBINARY,

    ALGORITHM INT,

    KEY VARCHAR,

    IV VARCHAR

)

参数说明:
SRC 需要被解密的 VARBINARY 类型数据
ALGORITHM 加密算法 ID,不可以为 NULL。加密算法对应的 ID 可通过查询 V$CIPHERS 得到
KEY 采用的密钥,不可以为 NULL
IV 采用的初始化矢量,可以为 NULL
解密语句

select SF_DECRYPT_TO_CHAR('0x9FF46AA8D86FB25ADED775837F400BB5',514,'secret key',NULL);

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密

SF_ENCRYPT_DATE

对 DATE 类型明文进行加密,并返回密文,语法格式

SF_ENCRYPT_DATE(

    SRC DATE,

    ALGORITHM INT,

    KEY VARCHAR,

    IV VARCHAR

)

参数说明:
SRC 需要被加密的 DATE 类型数据
ALGORITHM 加密算法 ID,不可以为 NULL。加密算法对应的 ID 可通过查询 V$CIPHERS 得到
KEY 采用的密钥,不可以为 NULL
IV 采用的初始化矢量,可以为 NULL
加密语句

select SF_ENCRYPT_DATE(cast('2023-11-11' AS DATE),514,'secret key',NULL);

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密

SF_DECRYPT_TO_DATE

对密文进行解密,并得到加密前的 DATE 类型明文,语法格式

SF_DECRYPT_TO_DATE(

    SRC VARBINARY,

    ALGORITHM INT,

    KEY VARCHAR,

    IV VARCHAR

)

参数说明:
SRC 需要被解密的 VARBINARY 类型数据
ALGORITHM 加密算法 ID,不可以为 NULL。加密算法对应的 ID 可通过查询 V$CIPHERS 得到
KEY 采用的密钥,不可以为 NULL
IV 采用的初始化矢量,可以为 NULL
解密语句

select SF_DECRYPT_TO_DATE('0x67331E1603728F30CA76DC3B4C77A028',514,'secret key',NULL);

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密

SF_ENCRYPT_DATETIME

对 DATETIME 类型明文进行加密,并返回密文,语法格式

SF_ENCRYPT_DATETIME(

    SRC DATETIME,

    ALGORITHM INT,

    KEY VARCHAR,

    IV VARCHAR

)

参数说明:
SRC 需要被加密的 DATETIME 类型数据
ALGORITHM 加密算法 ID,不可以为 NULL。加密算法对应的 ID 可通过查询 V$CIPHERS 得到
KEY 采用的密钥,不可以为 NULL
IV 采用的初始化矢量,可以为 NULL
加密语句

select SF_ENCRYPT_DATETIME(cast('2023-11-11 11:11:11' AS datetime),514,'secret key',NULL);

SF_DECRYPT_TO_DATETIME

对密文进行解密,并得到加密前的 DATETIME 类型明文,语法格式

SF_DECRYPT_TO_DATETIME(

    SRC VARBINARY,

    ALGORITHM INT,

    KEY VARCHAR,

    IV VARCHAR

)

参数说明:
SRC 需要被加密的 DATETIME 类型数据
ALGORITHM 加密算法 ID,不可以为 NULL。加密算法对应的 ID 可通过查询 V$CIPHERS 得到
KEY 采用的密钥,不可以为 NULL
IV 采用的初始化矢量,可以为 NULL
解密语句

select SF_DECRYPT_TO_DATETIME ('0xF46D6469B5958A4D04C96948F8F9428C',514,'secret key',NULL);

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密

SF_ENCRYPT_DEC

对 DEC 类型明文进行加密,并返回密文,语法格式

SF_ENCRYPT_DEC(

    SRC DEC,

    ALGORITHM INT,

    KEY VARCHAR,

    IV VARCHAR

)

参数说明:
SRC 需要被加密的 DEC 类型数据
ALGORITHM 加密算法 ID,不可以为 NULL。加密算法对应的 ID 可通过查询 V$CIPHERS 得到
KEY 采用的密钥,不可以为 NULL
IV 采用的初始化矢量,可以为 NULL
加密语句

select SF_ENCRYPT_DEC(cast('3.1415900000' AS dec(15,8)),514,'secret key',NULL);

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密

SF_DECRYPT_TO_DEC

对密文进行解密,并得到加密前的 DEC 类型明文,语法格式

SF_DECRYPT_TO_DEC(

    SRC VARBINARY,

    ALGORITHM INT,

    KEY VARCHAR,

    IV VARCHAR

)

参数说明:
SRC 需要被解密的 VARBINARY 类型数据
ALGORITHM 加密算法 ID,不可以为 NULL。加密算法对应的 ID 可通过查询 V$CIPHERS 得到
KEY 采用的密钥,不可以为 NULL
IV 采用的初始化矢量,可以为 NULL
解密语句

select SF_DECRYPT_TO_DEC ('0xE19597CBA4C0EAA4437454BB12041A49',514,'secret key',NULL);

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密

SF_ENCRYPT_TIME

对 TIME 类型明文进行加密,并返回密文,语法格式

SF_ENCRYPT_TIME(

    SRC TIME,

    ALGORITHM INT,

    KEY VARCHAR,

    IV VARCAHR

)

参数说明:
SRC 需要被加密的 TIME 类型数据
ALGORITHM 加密算法 ID,不可以为 NULL。加密算法对应的 ID 可通过查询 V$CIPHERS 得到
KEY 采用的密钥,不可以为 NULL
IV 采用的初始化矢量,可以为 NULL
加密语句

select SF_ENCRYPT_TIME(cast('11:11:11' AS time),514,'secret key',NULL);

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密

SF_DECRYPT_TO_TIME

对密文进行解密,并得到加密前的 TIME 类型明文,语法格式

SF_DECRYPT_TO_TIME(

    SRC VARBINARY,

    ALGORITHM INT,

    KEY VARCHAR,

    IV VARCHAR

)

参数说明:
SRC 需要被解密的 VARBINARY 类型数据
ALGORITHM 加密算法 ID,不可以为 NULL。加密算法对应的 ID 可通过查询 V$CIPHERS 得到
KEY 采用的密钥,不可以为 NULL
IV 采用的初始化矢量,可以为 NULL
解密语句

select SF_DECRYPT_TO_TIME ('0x8EEFEE4328CE85853D81179C8D17EA87',514,'secret key',NULL);

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密

SF_GET_CIPHER_NAME

根据加密算法 ID,获取加密算法的名称

SF_GET_CIPHER_NAME(

  CIPHER_ID IN INT

)

参数说明:
CIPHER_ID 加密算法 ID
获取加密算法名称语句

select SF_GET_CIPHER_NAME(514);

达梦(DM)数据库存储加密,数据库,DM,达梦数据库,存储加密
到这里,关于DM数据库常用的加密函数,也就是半透明加密方式也就说完了。文章来源地址https://www.toymoban.com/news/detail-861612.html

到了这里,关于达梦(DM)数据库存储加密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 达梦数据库(dm8)导出sql文件

    1.新建迁移工程 2.右键进行新建迁移 3.选择DM== SQL 后进行下一步 4.输入口令后继续下一步 5.定义脚本文件可选择自己新建的sql空文件,编码使用UTF-8 选择自己要导出的模式 7.选择导出的表 使用反选可以进行全选 8.点击完成进行迁移 也可以使用其他方式进行导出,如DM管理工具

    2024年02月11日
    浏览(14)
  • 达梦数据库(DM8)常用SQL学习

    达梦产品手册 从输出结果看出,用户状态 account_status 为 open,输出的时间为用户的创建时间。 注意:windows系统在DM管理工具中使用该命令无法完成用户切换,直接断开登录后重新连接,更换登录用户即可。 通过触发器脚本实现 解析 UPDATE_TIME_CUSTOM_NAME:触发名称 DEV: 模式名

    2024年02月01日
    浏览(14)
  • dmfldr-快速装载-载入(DM8:达梦数据库)

    DM 提供了快速装载工具:dmfldr; 通过使用快速装载工具能够把按照一定格式排序的文本数据以简单、快速、高效的方式载入到 DM 数据库中,或把 DM 数据库中的数据按照一定格式载出到文本文件中。 dmfldr 在一台机器上启动即可,独立完成快速装载任务,简单高效。 其中,表

    2024年02月06日
    浏览(13)
  • 开发 | JAVA连接达梦数据库(DM8)

    本文参考文献 https://eco.dameng.com/docs/zh-cn/start/java-development.html https://eco.dameng.com/docs/zh-cn/app-dev/index.html 本文通过以下方式实现Java程序与DM8数据库的交互 使用JDBC接口(不用框架,最简单) 使用MyBatis框架 使用Spring框架 使用SpringBoot Jdbc 框架 Java的软件开发工具包(SDK) JDK(Ja

    2024年02月07日
    浏览(31)
  • 达梦数据库——数据迁移sqlserver-dm报错问题整理

    报错情况一:Sql server迁移达梦连接报错’驱动程序无法通过使用安全套接字Q层(SSL)加密与SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferencesITLS127‘ 原因:历史版本的SOL SERVER服务端默认使用TLS1.0版本协议对外提供服务,因安全问题

    2024年02月19日
    浏览(12)
  • DM8:达梦数据库开启SQL日志sqllog

    在使用数据库过程中,有时候想要查看数据库执行的SQL日志,由于V$SESSIONS 系统视图默认保留10000条,不满足需求,可以配置开启SQLLOG; 登陆达梦数据库管理工具或 disql 执行命令 开启后注意观察数据库log目录的dmsql开头的日志文件,是否达到256MB后正常切换,达到20个日志文件

    2024年02月10日
    浏览(9)
  • springboot使用达梦数据库(DM8)整合MybatisPlus

    在idea中开发spring boot项目,用到的数据库是达梦数据库,想要使用 MybatisPlus 自动生成实体类和服务,并且通过 MybatisPlus 完成一些简单的数据库CRUD ps:这里的 MybatisPlus 版本必须要是3.0以上 2.1、pom ps:其中需要将达梦数据库的依赖添加到指定目录下,不然达梦的依赖无法生效

    2024年02月16日
    浏览(17)
  • 【Database-02】达梦数据库 - DM Manager管理工具安装

    DM Manager是达梦数据库自带的图形化界面管理工具,在安装达梦数据库的时候就会自动安装。 Linux环境,默认安装路径为:达梦安装目录/tool/manager,如果Linux是安装GUI,那么就可以直接启动使用。 实际大部分使用过程中,是在windows环境另外再安装一个达梦数据库客户端。 从达

    2024年02月15日
    浏览(10)
  • 达梦数据库报dm.jdbc.driver.DMException: 网络通信异常

    1.注意url最后面的下划线\\\"/\\\"要去掉 2.改成 1.请仔细检查username、password、driver-class-name、url中IP地址和冒号\\\":\\\"后面的端口号是否正确,特别是IP地址更换环境容易忘记修改。

    2024年02月16日
    浏览(14)
  • 达梦数据库(DM7)自动更新时间触发器及时间排序

    达梦数据库(DM7)目前支持的列属性并不多,比如并不支持直接创建自动记录更新时间的列属性,但是这个功能在实际数据库使用中又比较频繁,本文简单记录如何通过时间触发器设置某列自动记录更新时间,即所谓的update_time列。另外,实际使用中可能会有这种排序需求:永远

    2024年02月14日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包