Oracle数据base64加密简单方法

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Oracle数据base64加密简单方法

前一段时间需要对Oracle数据进行加解密,因为Oracle中没有类似MySQL的to_base64函数,所以看资料写了类似的函数实现加解密。步骤如下:
首先需要先授权加解密函数,修改 XXXX 为自己的用户,然后在Oracle数据库中执行。
Grant execute on dbms_crypto to XXXX;
Grant execute on dbms_sqlhash to XXXX;
Grant execute on dbms_obfuscation_toolkit to XXXX;
Grant execute on dbms_obfuscation_toolkit_ffi to XXXX;
Grant execute on dbms_crypto_ffi to XXXX;

在Oracle数据库上创建加密函数:
create or replace function my_encryption(

my_str varchar2 ,
my_key varchar2

)
return varchar2
as

my_key_raw raw(16) ;
my_str_raw raw(2000) ;
my_return_str varchar2(2000) ;
my_type pls_integer ;

begin

my_key_raw := utl_i18n.string_to_raw(my_key,'utf8') ;
my_str_raw := utl_i18n.string_to_raw(my_str,'utf8') ;
my_type := dbms_crypto.encrypt_aes128+dbms_crypto.chain_ecb+dbms_crypto.pad_pkcs5 ;
my_str_raw := dbms_crypto.encrypt(src => my_str_raw , typ => my_type, key => my_key_raw) ;
my_return_str := utl_raw.cast_to_varchar2(utl_encode.base64_encode(my_str_raw));

return my_return_str ;
end;

在Oracle数据库上创建解密函数:
create or replace function my_decryption(

my_str varchar2 ,
my_key varchar2

)
return varchar2
as

my_key_raw raw(16) ;
my_str_raw raw(2000) ;
my_return_str varchar2(2000) ;
my_type pls_integer ;

begin

my_key_raw := utl_i18n.string_to_raw(my_key,'utf8') ;
my_str_raw := utl_encode.base64_decode(utl_raw.cast_to_raw((my_str)));
my_type := dbms_crypto.encrypt_aes128+dbms_crypto.chain_ecb+dbms_crypto.pad_pkcs5 ;
my_str_raw := dbms_crypto.decrypt(src => my_str_raw , typ => my_type, key => my_key_raw ) ;
my_return_str := utl_i18n.raw_to_char(my_str_raw,'utf8');
return my_return_str ;

end;

使用例子:
加密
select my_encryption(待加密内容,你的key) from dual;
解密
select my_decryption(待解密内容,你的key) from dual;

相关文章
|
2月前
|
SQL 运维 Oracle
【迁移秘籍揭晓】ADB如何助你一臂之力,轻松玩转Oracle至ADB的数据大转移?
【8月更文挑战第27天】ADB(Autonomous Database)是由甲骨文公司推出的自动化的数据库服务,它极大简化了数据库的运维工作。在从传统Oracle数据库升级至ADB的过程中,数据迁移至关重要。
43 0
|
13天前
|
JavaScript 前端开发 安全
js逆向实战之烯牛数据请求参数加密和返回数据解密
【9月更文挑战第20天】在JavaScript逆向工程中,处理烯牛数据的请求参数加密和返回数据解密颇具挑战。本文详细分析了这一过程,包括网络请求监测、代码分析、加密算法推测及解密逻辑研究,并提供了实战步骤,如确定加密入口点、逆向分析算法及模拟加密解密过程。此外,还强调了法律合规性和安全性的重要性,帮助读者合法且安全地进行逆向工程。
57 11
|
9天前
|
数据安全/隐私保护
vuex数据持久化、加密(vuex-persistedstate、secure-ls)
本文介绍了如何在Vuex中使用`vuex-persistedstate`和`secure-ls`库进行数据的持久化和加密,确保在Vite打包上线后,Vuex中的数据安全。
20 1
|
13天前
|
存储 安全 数据库
Uno Platform 安全数据存储秘籍大公开!加密、存储、读取全攻略,让你的数据固若金汤!
在软件开发中,安全的数据存储至关重要。本文介绍如何在跨平台开发框架 Uno Platform 中实现安全数据存储,包括选择合适的数据存储方式(如本地文件或 SQLite 数据库)和使用 Bouncy Castle 加密库对数据进行 AES 加密。通过示例代码展示了数据的加密、存储及解密过程,帮助开发者保护用户敏感信息,防止数据泄露。
31 3
|
24天前
|
Oracle 安全 关系型数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法探讨
删除Oracle数据库数据一般有以下2种方式:delete、drop或truncate。下面针对这2种删除oracle数据库数据的方式探讨一下oracle数据库数据恢复方法(不考虑全库备份和利用归档日志)。
|
24天前
|
存储 安全 算法
RSA在手,安全我有!Python加密解密技术,让你的数据密码坚不可摧
【9月更文挑战第11天】在数字化时代,信息安全至关重要。传统的加密方法已难以应对日益复杂的网络攻击。RSA加密算法凭借其强大的安全性和广泛的应用场景,成为保护敏感数据的首选。本文介绍RSA的基本原理及在Python中的实现方法,并探讨其优势与挑战。通过使用PyCryptodome库,我们展示了RSA加密解密的完整流程,帮助读者理解如何利用RSA为数据提供安全保障。
43 5
|
27天前
|
安全 数据安全/隐私保护 Python
情书也能加密?Python AES&RSA,让每一份数据都充满爱的密码
【9月更文挑战第8天】在这个数字化时代,情书不再局限于纸笔,也可能以电子形式在网络中传递。为了确保其安全,Python提供了AES和RSA等加密工具,为情书编织爱的密码。首先,通过安装pycryptodome库,我们可以利用AES对称加密算法高效保护数据;接着,使用RSA非对称加密算法加密AES密钥和IV,进一步增强安全性。即使情书被截获,没有正确密钥也无法解读内容。让我们用Python为爱情编织一张安全的网,守护每份珍贵情感。
30 2
|
2月前
|
SQL 监控 Oracle
Oracle数据误删不用怕,跟我来学日志挖掘
Oracle数据误删不用怕,跟我来学日志挖掘
24 0
|
2月前
|
SQL Oracle 关系型数据库
Oracle误删数据怎么恢复?
Oracle误删数据怎么恢复?
32 0
|
2月前
|
SQL Oracle Java
实时计算 Flink版产品使用问题之采集Oracle数据时,为什么无法采集到其他TABLESPACE的表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。

推荐镜像

更多
下一篇
无影云桌面