General Information |
Source |
{ORACLE_HOME}/rdbms/admin/dbmsobtk.sql |
Algorithm Constants |
Name |
Data Type |
Value |
Hash Functions |
HASH_MD4 (128 bit hash) |
PLS_INTEGER |
1 |
HASH_MD5 (128 bit hash) |
PLS_INTEGER |
2 |
HASH_SH1 (160 bit hash) |
PLS_INTEGER |
3 |
MAC Functions |
HMAC_MD5 (128 bit hash) |
PLS_INTEGER |
1 |
HMAC_SH1 (160 bit hash) |
PLS_INTEGER |
2 |
Block Cipher Algorithms |
ENCRYPT_DES (56 bit) |
PLS_INTEGER |
1; -- 0x0001 |
ENCRYPT_3DES_2KEY (128 bit) |
PLS_INTEGER |
2; -- 0x0002 |
ENCRYPT_3DES |
PLS_INTEGER |
3; -- 0x0003 |
ENCRYPT_AES128 (128 bit) |
PLS_INTEGER |
6; -- 0x0006 |
ENCRYPT_AES192 (192 bit) |
PLS_INTEGER |
7; -- 0x0007 |
ENCRYPT_AES256 (256 bit) |
PLS_INTEGER |
8; -- 0x0008 |
ENCRYPT_RC4 (Stream Cipher) |
PLS_INTEGER |
129; -- 0x0081 |
Block Cipher Chaining Modifiers |
CHAIN_CBC (Cipher Block Chaining) |
PLS_INTEGER |
256; -- 0x0100 |
CHAIN_CFB (Cipher Feedback) |
PLS_INTEGER |
512; -- 0x0200 |
CHAIN_ECB (Electronic cookbook) |
PLS_INTEGER |
768; -- 0x0300 |
CHAIN_OFB (Output Feedback) |
PLS_INTEGER |
1024; -- 0x0400 |
Block Cipher Padding Modifiers |
PAD_PKCS5 (Complies with PKCS #5) |
PLS_INTEGER |
4096; -- 0x1000 |
PAD_NONE (No Dadding) |
PLS_INTEGER |
8192; -- 0x2000 |
PAD_ZERO (Pad with Zeros) |
PLS_INTEGER |
12288; -- 0x3000 |
Block Ciphers Suites |
DES_CBC_PKCS5 |
PLS_INTEGER |
ENCRYPT_DES + CHAIN_CBC + PAD_PKCS5; |
DES3_CBC_PKCS5 |
PLS_INTEGER |
ENCRYPT_3DES + CHAIN_CBC + PAD_PKCS5; |
|
Dependencies |
DBMS_CRYPTO_FFI |
DECRYPTBYTES |
ENCRYPTBYTES |
DECRYPT |
ENCRYPT |
UTL_RAW |
|
Exceptions |
Error Code |
Reason |
28827 |
The specified cipher suite is not defined |
28829 |
No value has been specified for the cipher suite to be used |
28233 |
Source data was previously encrypted |
28234 |
DES: Specified key size too short. DES keys must be at least 8 bytes (64 bits). AES: Specified key size is not supported. AES keys must be 128, 192, or 256 bits |
28239 |
The encryption key has not been specified or contains a NULL value |
|
|
DECRYPT |
Decrypt crypt text data using stream or block cipher with user supplied key and optional iv
Overload 1 |
dbms_crypto.decrypt(src IN RAW, typ IN PLS_INTEGER, key IN RAW, iv IN RAW DEFAULT NULL) RETURN RAW; |
See Encrypt Overload 1 demo |
Overload 2 |
dbms_crypto.decrypt(dst IN OUT NOCOPY BLOB, src IN BLOB, typ IN PLS_INTEGER, key IN RAW, iv IN RAW DEFAULT NULL); |
|
Overload 3 |
dbms_crypto.decrypt (dst IN OUT NOCOPY CLOB CHARACTER SET ANY_CS, src IN BLOB, typ IN PLS_INTEGER, key IN RAW, iv IN RAW DEFAULT NULL); |
|
|
ENCRYPT |
Encrypt plain text data using stream or block cipher with user supplied key and optional iv
Overload 1 |
dbms_crypto.encrypt(src IN RAW, typ IN PLS_INTEGER, key IN RAW, iv IN RAW DEFAULT NULL) RETURN RAW; |
set serveroutput on
DECLARE l_credit_card_no VARCHAR2(19) := '1234-5678-9012-3456'; l_ccn_raw RAW(128) := utl_raw.cast_to_raw(l_credit_card_no); l_key RAW(128) := utl_raw.cast_to_raw('abcdefgh');
l_encrypted_raw RAW(2048); l_decrypted_raw RAW(2048); BEGIN dbms_output.put_line('Original : ' || l_credit_card_no);
l_encrypted_raw :=dbms_crypto.encrypt(l_ccn_raw, dbms_crypto.des_cbc_pkcs5, l_key);
dbms_output.put_line('Encrypted : ' || RAWTOHEX(utl_raw.cast_to_raw(l_encrypted_raw)));
l_decrypted_raw :=dbms_crypto.decrypt(src => l_encrypted_raw, typ => dbms_crypto.des_cbc_pkcs5, key => l_key);
dbms_output.put_line('Decrypted : ' || utl_raw.cast_to_varchar2(l_decrypted_raw)); END; / |
set serveroutput on
DECLARE enc_val RAW(2000); l_key RAW(2000); l_key_len NUMBER := 128/8;-- convert bits to bytes l_mod NUMBER :=dbms_crypto.ENCRYPT_AES128 +dbms_crypto.CHAIN_CBC+dbms_crypto.PAD_PKCS5;
BEGIN l_key :=dbms_crypto.randombytes(l_key_len);
enc_val :=dbms_crypto.encrypt( utl_i18n.string_to_raw('1234-5678-9012-3456', 'AL32UTF8'), l_mod, l_key);
dbms_output.put_line(enc_val); END; / |
Overload 2 |
dbms_crypto.encrypt(dst IN OUT NOCOPY BLOB, src IN BLOB, typ IN PLS_INTEGER, key IN RAW, iv IN RAW DEFAULT NULL); |
|
Overload 3 |
dbms_crypto.encrypt(dst IN OUT NOCOPY BLOB, src IN CLOB CHARACTER SET ANY_CS, typ IN PLS_INTEGER, key IN RAW, iv IN RAW DEFAULT NULL); |
|
dbms_crypto.encrypt(UTL_RAW.CAST_TO_RAW(CONVERT('XXX','AL32UTF8')),typ,key); |
HASH |
Hash source data by cryptographic hash type
Overload 1 |
dbms_crypto.hash(src IN RAW, typ IN PLS_INTEGER) RETURN RAW; |
|
Overload 2 |
dbms_crypto.hash(src IN BLOB, typ IN PLS_INTEGER) RETURN RAW; |
|
Overload 3 |
dbms_crypto.hash(src IN CLOB CHARACTER SET ANY_CS, typ IN PLS_INTEGER) RETURN RAW; |
|
|
MAC |
Message Authentication Code algorithms provide keyed message protection
Overload 1 |
dbms_crypto.mac(src IN RAW, typ IN PLS_INTEGER, key IN RAW) RETURN RAW; |
|
Overload 2 |
dbms_crypto.mac(src IN BLOB, typ IN PLS_INTEGER, key IN RAW) RETURN RAW; |
|
Overload 3 |
dbms_crypto.mac(src IN CLOB CHARACTER SET ANY_CS, typ IN PLS_INTEGER, key IN RAW) RETURN RAW; |
|
|
RANDOMBYTES |
Returns a raw value containing a pseudo-random sequence of bytes |
dbms_crypto.randomnytes(number_bytes PLS_INTEGER) RETURN RAW; |
SELECTdbms_crypto.randombytes(1) FROM dual; SELECT LENGTH(dbms_crypto.randombytes(1)) FROM dual;
SELECT dbms_crypto.randombytes(28) FROM dual; SELECT LENGTH(dbms_crypto.randombytes(28)) FROM dual;
SELECT dbms_crypto.randombytes(64) FROM dual; SELECT LENGTH(dbms_crypto.randombytes(64)) FROM dual; |
|
RANDOMINTEGER |
Returns a random BINARY_INTEGER |
dbms_crypto.randominteger RETURN NUMBER; |
SELECTdbms_crypto.randomintegerFROM dual; |
|
RANDOMNUMBER |
Returns a randomOracleNumber |
dbms_crypto.randomnumber RETURN NUMBER; |
SELECTdbms_crypto.randomnumberFROM dual; |
相关推荐
oracle dbms_lob
ORA-04063: package body SYS.DBMS_REGISTRY_SYS has errors
dbms_obfuscation_toolkit加密解密数据
作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息. DBMS_STATS.GATHER_TABLE_STATS的语法如下: DBMS_STATS.GATHER_TABLE_STATS ( ownname VARCHAR2, tabname VARCHAR2, partname VARCHAR2, estimate_...
Oracle DOM编程 文档,有要的没 Start from toc.htm DBMS_XMLDOM DBMS_XMLPARSER DBMS_XMLQUERY
ORACLE数据库使用dbms_stats包手动收集关于表的、索引的统计信息。
Oracle 18c bug 执行 DBMS_PDB.CHECK_PLUG_COMPATIBILITY报错_ITPUB博客.mhtml
Oracle实用工具RMAN的应用为DBA管理多个Oracle数据库提供了集中备份管理与恢复控制的机制,大大地减轻了DBA的工作压力,而DBMS_JOB包的使用增强了存储过程的应用功能,这样,他们就可以从备份数据及重复处理数据的...
支持ArcGIS10.2版本的PostgreSQL_DBMS_for_windows_922,ESRI官方原版资源。
DBMS_XPLAN是Oracle提供的一个用于查看SQL计划,包括执行计划和解释计划的包;在以前查看SQL执行计划的时候,我都是使用set autotrace命令,不过现在看来,DBMS_XPLAN包给出了更加简化的获取和显示计划的方式。 这5...
DBMS JOB包创建ORACLE定时任务
dbms_comp_advisor.getratio 预估压缩比例的存储过程脚本 11gR2以前使用,11gR2后可以使用系统自带的存储。
oracle中DBMS_SQL的使用,详细讲解oracle DBMS_SQL的使用办法
通过此版本可以把oracle时区版本调整到为最新版本,一般配合时区补丁使用 可以参考https://blog.csdn.net/weixin_43885834/article/details/105745901 https://download.csdn.net/download/weixin_43885834/12360971...
详细介绍DBMS_JOB包的各函数操作,以及各函数对job的使用作用等。
以下是对Oracle中dbms_metadata.get_ddl的用法进行了详细的分析介绍,需要的朋友参考下
说明:本文为Oracle11g收集各种统计信息(DBMS_STAT)的简要指导手册 温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化 ● analyze始于Oracle7,但自从Oracle8.1.5引入dbms_stats...
dbms_random是oracle提供的一个随机函数包,以下介绍一些dbms_random的常用示例: dbms_random.value用法: 生成一个大于等于0,小于等于1的38位小数 代码如下: — FUNCTION value RETURN NUMBER; select dbms_...
oracle dbms_sql的使用方法,非常使用
对于偶尔需要进行 重做日志 解释的人(或者记力不是特别强的牛人)来讲,可能不太记得完整的DBMS_...鉴于以上的种种不便,在下对LOGMNER程序包,进行了封装,方便大量使用ORACLE 强大的日志分析工具dbms_logmner.