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. centos7安装nginx必要环境

    安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行 , 在安装nginx前还要安装以下的环境包 一. gcc 安装安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc ...

  2. C#+HtmlAgilityPack+Dapper走一波爬虫

    最近因为公司业务需要,又有机会撸winform了,这次的需求是因为公司有项目申报的这块业务,项目申报前期需要关注政府发布的相关动态信息,政府部门网站过多,人工需要一个一个网站去浏览和查阅,有时候还会遗 ...

  3. Python中模块之copy的功能介绍

    模块之copy的功能介绍 copy主要分两种: 1.浅拷贝 2.深拷贝 赋值: 在python中赋值算特殊的拷贝,其实赋值可以理解为同一个对象有两个名字,所以当其中一个发生变化,另一个也跟着会变化. ...

  4. 谷歌发布 TensorFlow Serving

    TensorFlow服务是一个灵活的,高性能的机器学习模型的服务系统,专为生产环境而设计. TensorFlow服务可以轻松部署新的算法和实验,同时保持相同的服务器体系结构和API. TensorFl ...

  5. Axis2 webservice入门--Webservice的发布与调用

    一.Webservice发布 参考 http://www.cnblogs.com/demingblog/p/3263576.html 二.webservice 调用 部分参考:http://www.c ...

  6. 阿里云服务器Centos 7安装PHP

    网上各种别人写的博客 我自己配置了一下php 开始安装的是压缩包 结果php -version 无显示 然后查找各种资料 请教了很多人 需要的环境一一配置了,但是虽然出现了安装成功,但是还是无法查看版 ...

  7. Tomcat出现validateJarFile-jar not loaded问题

    tomcat启动时问题: validateJarFile(...\WEB-INF\lib\servlet-api.jar)-jar not loaded. See Servlet Spec 2.3, ...

  8. ubuntu 卸载从源码安装的 emacs

    由于配置问题想卸了重装. 解压并进入你的源码所在目录: ./configure sudo make uninstall Done Reference: http://askubuntu.com/que ...

  9. 深入浅出低功耗蓝牙(BLE)协议栈

    深入浅出低功耗蓝牙(BLE)协议栈 BLE协议栈为什么要分层?怎么理解蓝牙"连接"?如果蓝牙协议只有ATT没有GATT会发生什么? 协议栈框架 一般而言,我们把某个协议的实现代码称 ...

  10. 剑指架构师系列-MySQL调优

    介绍MySQL的调优手段,主要包括慢日志查询分析与Explain查询分析SQL执行计划 1.MySQL优化 1.慢日志查询分析 首先需要对慢日志进行一些设置,如下: SHOW VARIABLES LI ...