DECLARE

  v_password_1 VARCHAR2(240);

  v_password_2 VARCHAR2(240);

  v_password_3 VARCHAR2(240);

BEGIN

  v_password_1 := 'CxY-1234567-AbC';

  dbms_output.put_line('加密前:' || v_password_1);

  --加密

  v_password_2 := cux_password_demo.password_encrypt(p_passwd => v_password_1);

dbms_output.put_line('加密后:' || v_password_2);

  --解密

  v_password_3 := cux_password_demo.password_decrypt(p_passwd => v_password_2);

dbms_output.put_line('解密后:' || v_password_3);

END;

CREATE OR REPLACE PACKAGE cux_password_demo AS

  /*==================================================

  -- Author  : CXY5632

  -- Created : 2014/2/20 18:04:03

  -- Purpose : 密码加密解密演示

 

                    

  ==============================================*/

FUNCTION decrypt(key IN VARCHAR2, VALUE IN VARCHAR2) RETURN VARCHAR2;

FUNCTION encrypt(key IN VARCHAR2, VALUE IN VARCHAR2) RETURN VARCHAR2;

FUNCTION password_encrypt(p_passwd IN VARCHAR2) RETURN VARCHAR2;

FUNCTION password_decrypt(p_passwd IN VARCHAR2) RETURN VARCHAR2;

END cux_password_demo;

/

CREATE OR REPLACE PACKAGE BODY cux_password_demo AS

  /*==================================================

  -- Author  : CXY5632

  -- Created : 2014/2/20 18:04:03

  -- Purpose : 密码加密解密演示

 

                    

  ==============================================*/

FUNCTION decrypt(key IN VARCHAR2, VALUE IN VARCHAR2) RETURN VARCHAR2 AS

    LANGUAGE JAVA NAME 'oracle.apps.fnd.security.WebSessionManagerProc.decrypt(java.lang.String,java.lang.String) return java.lang.String';

FUNCTION encrypt(key IN VARCHAR2, VALUE IN VARCHAR2) RETURN VARCHAR2 AS

    LANGUAGE JAVA NAME 'oracle.apps.fnd.security.WebSessionManagerProc.encrypt(java.lang.String,java.lang.String) return java.lang.String';

/* =============================================

  *   FUNCTION

  *   NAME :

  *         password_decrypt

  *   DESCRIPTION:

  *         暗文解密

  *   ARGUMENT:

  *         p_passwd : 需要解密的暗文解密

  *   RETURN:

  *      

  *   HISTORY:

  *     1.00   2014-02-20   cxy   Creation

  * =============================================*/

  FUNCTION password_decrypt(p_passwd IN VARCHAR2) RETURN VARCHAR2 IS

    l_decrypted_passwd VARCHAR2(100);

  BEGIN

    SELECT decrypt((SELECT (SELECT decrypt(fnd_web_sec.get_guest_username_pwd,

                                          usertable.encrypted_foundation_password)

                             FROM dual) AS apps_password

                     FROM apps.fnd_user usertable

                    WHERE usertable.user_name =

                          (SELECT substr(fnd_web_sec.get_guest_username_pwd,

                                         1,

                                         instr(fnd_web_sec.get_guest_username_pwd,

                                               '/') - 1)

                             FROM dual)),

                   p_passwd)

      INTO l_decrypted_passwd

      FROM dual;

    RETURN l_decrypted_passwd;

  EXCEPTION

    WHEN OTHERS THEN

      RAISE fnd_api.g_exc_unexpected_error;

  END password_decrypt;

/* =============================================

  *   FUNCTION

  *   NAME :

  *         password_encrypt

  *   DESCRIPTION:

    *         明文加密

  *   ARGUMENT:

  *         p_passwd : 需要加密的明文

  *   RETURN:

  *      

  *   HISTORY:

  *     1.00   2014-02-20   cxy   Creation

  * =============================================*/

  FUNCTION password_encrypt(p_passwd IN VARCHAR2) RETURN VARCHAR2 IS

    l_encrypted_passwd VARCHAR2(100);

  BEGIN

    SELECT encrypt((SELECT (SELECT decrypt(fnd_web_sec.get_guest_username_pwd,

                                          usertable.encrypted_foundation_password)

                             FROM dual) AS apps_password

                     FROM apps.fnd_user usertable

                    WHERE usertable.user_name =

                          (SELECT substr(fnd_web_sec.get_guest_username_pwd,

                                         1,

                                         instr(fnd_web_sec.get_guest_username_pwd,

                                               '/') - 1)

                             FROM dual)),

                   p_passwd)

      INTO l_encrypted_passwd

      FROM dual;

    RETURN l_encrypted_passwd;

  EXCEPTION

    WHEN OTHERS THEN

      RAISE fnd_api.g_exc_unexpected_error;

  END password_encrypt;

END cux_password_demo;

/

EBS密码加密研究的更多相关文章

  1. 学习Spring Boot:(十四)spring-shiro的密码加密

    前言 前面配置了怎么使用 shiro ,这次研究下怎么使用spring shiro的密码加密,并且需要在新增.更新用户的时候,实现生成盐,加密后的密码进行入库操作. 正文 配置凭证匹配器 @Bean ...

  2. html5对密码加密

    今天找了几个关于对html5的密码加密的方法,仅供参考 1.base64加密:在页面中引入base64.js文件,调用方法为: <html> <head> <meta c ...

  3. Maven-009-Nexus 用户密码加密(安全必须)

    信息数据大爆发的时代,我们关心什么?没错,数据安全!数据安全!数据安全!(重要事情说三遍,哈哈哈...) 之前我们存放在 maven settings.xml 文件中的 Nexus 私服用户密码都是明 ...

  4. C#:使用MD5对用户密码加密与解密

    C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式.本文总结了通用的算法并结合了自己的一点小经验,分享给大家. 一.使用16位.32位.64位MD5方法对用户名加密 1 ...

  5. 使用bcrypt进行用户密码加密的简单实现

    Bcrypt百度百科: bcrypt,是一个跨平台的文件加密工具.由它加密的文件可在所有支持的操作系统和处理器上进行转移.它的口令必须是8至56个字符,并将在内部被转化为448位的密钥. 除了对您的数 ...

  6. Druid 数据库用户密码加密 代码实现

    druid-1.0.16.jar 阿里巴巴的开源数据连接池 jar包 明文密码+私钥(privateKey)加密=加密密码 加密密码+公钥(publicKey)解密=明文密码 程序代码如下: pack ...

  7. 用RSA加密实现Web登录密码加密传输

    通常我们做一个Web应用程序的时候都需要登录,登录就要输入用户名和登录密码,并且,用户名和登录密码都是明文传输的,这样就有可能在中途被别人拦截,尤其是在网吧等场合. 这里顺带一个小插曲,我以前有家公司 ...

  8. Web安全--使用Salt + Hash将密码加密后再存储进数据库

    转载原地址 http://www.bozhiyue.com/mianshiti/_net/2016/0728/314239.html (一) 为什么要用哈希函数来加密密码 如果你需要保存密码(比如网站 ...

  9. 转载 C#使用Salt + Hash来为密码加密

    转载 http://www.csharpwin.com/csharpspace/13412r9615.shtml (一) 为什么要用哈希函数来加密密码 如果你需要保存密码(比如网站用户的密码),你要考 ...

随机推荐

  1. hdu 4453 splay

    Looploop Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  2. 2017-9-19 c语言预备作业

    题目一: (1)我对邹欣老师博客内容的看法 针对邹欣老师的第一种看法,也就是文中所谈的春蚕与园丁的例子.我认为在大学之前的阶段,师生关系可以如此比喻,因为在中学阶段教师与学生的关系,更多地是一个知识的 ...

  3. 谷歌Chrome浏览器之No Sandbox

     想着还是要把这个分享出来,前两天,早上过来,Chrome打开后,输入网址回车,毫无反应,不加载,不跳转,打不开浏览器设置.总之就是除了能打开Chrome浏览器,不能进行任何其他操作,关闭重开也是这样 ...

  4. 初识Redis系列之一:简单介绍

    一:Redis是什么? Redis全称:REmote DIctionary Server(Redis) .Redis是一个由Salvatore Sanfilippo写的key-value存储系统,AN ...

  5. android 欢迎界面的制作

    再打开手机app的时候,最先映入我们眼帘的是一个覆盖手机全屏的欢迎界面,在这个界面显示出来的时候整个手机屏幕只会显示这一个界面,上面的标题栏,以及手机最顶端的状态栏都会消失,只有欢迎页面结束跳转到其他 ...

  6. zookeeper工作机制

    Zookeeper Zookeeper概念简介: Zookeeper是为用户的分布式应用程序提供协调服务的 zookeeper是为别的分布式程序服务的 Zookeeper本身就是一个分布式程序(只要有 ...

  7. JavaScript基础知识从浅入深理解(一)

    JavaScript的简介 javascript是一门动态弱类型的解释型编程语言,增强页面动态效果,实现页面与用户之间的实时动态的交互. javascript是由三部分组成:ECMAScript.DO ...

  8. CTR预估算法

    GBRT(Gradient Boost Regression Tree)渐进梯度回归树,XGBoost是GBRT的一个工程实现 LR(Logistics Regression )逻辑回归 Spark ...

  9. 如何恢复Initial commit之前的源文件

    在github新建了一个空的库,然后到本地文件夹下,git init了一下,将remote和本地的关联起来了,然后git pull了一下,本地的项目源码全没了,用以下命令可以帮你恢复 git refl ...

  10. PHP HTTP 函数

    PHP HTTP 简介 HTTP 函数允许您在其他输出被发送之前,对由 Web 服务器发送到浏览器的信息进行操作. 安装 HTTP 函数是 PHP 核心的组成部分.无需安装即可使用这些函数. PHP ...