正在使用以下函数来解密代码?有什么可以帮忙解决的吗?

2023-12-14

function ibp_crypto_decrypt ( p_session_id in RAW) return raw is
l_decrypted_raw     RAW(2048);
l_encrypted_raw     RAW(2048) := p_session_id;
l_key               RAW(128) := UTL_RAW.cast_to_raw('abcdefgh');
begin
dbms_output.put_line('l_encrypted_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))   ;                                      
return l_decrypted_raw;--RAWTOHEX(UTL_RAW.cast_to_varchar2(l_decrypted_raw));                                          
exception when others
then
dbms_output.put_line(' ibp_crypto_decrypt'||'='||sqlerrm||dbms_utility.format_error_backtrace);
end;                                         

ibp_crypto_decrypt=ORA-28817: PL/SQL 函数返回错误。

ORA-06512: at "SYS.DBMS_CRYPTO_FFI", line 67
ORA-06512: at "SYS.DBMS_CRYPTO", line 44
ORA-06512: at "IBOXV5_TEST.IBK_CRYPTO_ENCRYPTION", line 28

我已经通过实际值的加密完成了您的示例,并且它按预期工作。您确定您正确加密了该值吗?

DECLARE
    l_input VARCHAR2(30) := utl_raw.cast_to_raw('12345678');
    l_encrypted_raw RAW(2048);
    l_decrypted_raw RAW(2048);
    l_key RAW(128) := utl_raw.cast_to_raw('abcdefgh');
BEGIN
    l_encrypted_raw := dbms_crypto.encrypt(src=>l_input, typ=>dbms_crypto.des_cbc_pkcs5, key=>l_key);
    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;
/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正在使用以下函数来解密代码?有什么可以帮忙解决的吗? 的相关文章

  • pl/sql 函数中的 select 子句返回错误值

    当我这样做时 select sum m mot from rmtq mq join rmo m on mq id m id where mq another 138 返回值 2 这是正确的 但是当我将此代码放入函数中时 create or
  • Java 代码中出现“没有为‘plsql’语言注册查询执行器工厂”异常

    我有一个简单的报告 显示数据库中的字段 我在 Jasper 中设置了一个数据适配器并放置了查询 我可以从 Jasper 成功预览报告 但是当涉及到 Java 时 它无法编译报告并显示以下异常 2014 年 6 月 18 日下午 3 17 4
  • 截断存储过程中的表

    当我在 Oracle shell 中运行以下命令时 它工作正常 truncate table table name 但是当我尝试将其放入存储过程时 CREATE OR REPLACE PROCEDURE test IS BEGIN trun
  • PL/SQL 在整个数据库中搜索字符串

    这不仅仅是一个问题 它还是一个信息共享帖子 我今天遇到一个情况我需要在应用程序的整个数据库中寻找一个刺痛 但不知道它属于哪个表 列 下面是我编写并用于帮助我提出建议的 PL SQL 块 希望它能帮助其他有类似需求的人 Declare i N
  • PLSQL 触发器通过 SQL 加载器触发

    当我们通过 SQL 加载器插入时 表会被触发吗 请详细解释一下 Oracle 将执行INSERT如果使用常规负载则触发 但是当你使用直接负载时不是 http docs oracle com cd E11882 01 server 112 e
  • 在匿名块内显示选择结果

    我正在尝试调试过程中的 SELECT 并且我正在尝试使用匿名块 我希望 SQL Developer 只返回最后一个 SELECT 语句 但我收到错误 ORA 06550 line 21 column 5 PLS 00428 an INTO
  • ORA-00060: 等待资源时检测到死锁

    我有一系列脚本作为 nohup 在托管 Oracle 10g 的 AIX 服务器上并行运行 这些脚本是由其他人编写的 旨在同时执行 所有脚本都在表上执行更新 我收到错误 ORA 00060 检测到死锁 等待资源 当我用谷歌搜索这个时 我发现
  • PL/SQL 逗号分隔列表;删除重复项并放入数组中

    我有一个以逗号分隔的列表作为 PL SQL 过程中的字符串 我需要 删除重复项 将列表放入数组中 我发现了多种方法可以做到其中之一 但不能同时做到两者 有什么帮助吗 有一个众所周知的 SQL 技巧可以将逗号分隔的列表转换为行 只需使用这个技
  • 在PL/SQL中,以一个表作为参数,过滤它并返回它

    我正在为 PL SQL 函数而苦苦挣扎 我正在尝试编写一个函数 该函数将接受对象表 根据某些条件 我打算根据其他表测试值 过滤该表并返回过滤表 我的表类型定义如下 CREATE TYPE test obj AS OBJECT test id
  • 使用空值上的连接级别使用 pl/sql 分割字符串

    我在 Oracle pl sql 中使用以下代码 版本 Oracle 数据库 11g 版本 11 2 0 1 0 select regexp substr A B C 1 level output from dual connect by
  • SQL 查询中的游标

    在 Oracle 中 可以返回cursor在 SQL 查询中 使用cursor关键字 像这样 select owner table name cursor select column name from all tab columns wh
  • 在 PL/SQL 存储过程中拆分逗号分隔的字符串

    我有 CSV 字符串 100 01 200 02 300 03 我需要将其传递给 Oracle 中的 PL SQL 存储过程 在过程中 我需要将这些值插入表中的数字列中 为此 我从这里得到了一个工作方法 如何在 oracle 9i 中最好地
  • PLS-00394: fetch 语句的 INTO 列表中的值数量错误

    这是我在存储过程中创建游标的尝试 Second Stored Procedure CREATE OR REPLACE PROCEDURE sp GetDiscountedRate DiscountCode IN VARCHAR2 Perce
  • Oracle:如何调用重载过程?

    如何正确拨打电话DBMS OBFUSCATION TOOLKIT DESEncrypt 如果可能 不使用 PL SQL select DBMS OBFUSCATION TOOLKIT DESEncrypt x y from dual 不起作
  • oracle pl/sql中的XML解析

    我正在尝试在 PL SQL 中解析此 XML
  • Oracle PL/SQL:从字符串中删除“空格字符”

    在我的 Oracle 10g 数据库中 我想从表字段的值中删除 空格字符 空格 制表符 回车符 Is TRANSLATE 该怎么走 例如 MY VALUE TRANSLATE MY VALUE CHR 9 CHR 10 CHR 11 CHR
  • 如何使用循环将值添加到 VARRAY

    我有一个 VARRAY 我想通过使用循环向该 VARRAY 添加元素 这是我到目前为止所尝试过的 DECLARE TYPE code array IS VARRAY 26 OF VARCHAR2 6 codes code array BEG
  • PL/SQL select into - 如果数据存在

    仅当存在数据时 我才需要选择局部变量 SELECT column1 INTO local variable FROM table1 where column2
  • 在 PLSQL 条件逻辑中使用子查询;错误 PLS-00405

    我正在构建一个使用 PHP 从 Oracle10g 数据库服务器获取数据的应用程序 我的输入表单有一系列复选框 这些复选框通过数组提交到处理页面 代码过滤到相关元素
  • oracle日期序列?

    我有一个 oracle 数据库 我需要一个包含 2 年所有日期的表 例如来自01 01 2011 to 01 01 2013 首先我想到了一个序列 但显然唯一支持的类型是数字 所以现在我正在寻找一种有效的方法来做到这一点 欢呼骗局 如果您想

随机推荐