EBS密码加密研究
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密码加密研究的更多相关文章
- 学习Spring Boot:(十四)spring-shiro的密码加密
前言 前面配置了怎么使用 shiro ,这次研究下怎么使用spring shiro的密码加密,并且需要在新增.更新用户的时候,实现生成盐,加密后的密码进行入库操作. 正文 配置凭证匹配器 @Bean ...
- html5对密码加密
今天找了几个关于对html5的密码加密的方法,仅供参考 1.base64加密:在页面中引入base64.js文件,调用方法为: <html> <head> <meta c ...
- Maven-009-Nexus 用户密码加密(安全必须)
信息数据大爆发的时代,我们关心什么?没错,数据安全!数据安全!数据安全!(重要事情说三遍,哈哈哈...) 之前我们存放在 maven settings.xml 文件中的 Nexus 私服用户密码都是明 ...
- C#:使用MD5对用户密码加密与解密
C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式.本文总结了通用的算法并结合了自己的一点小经验,分享给大家. 一.使用16位.32位.64位MD5方法对用户名加密 1 ...
- 使用bcrypt进行用户密码加密的简单实现
Bcrypt百度百科: bcrypt,是一个跨平台的文件加密工具.由它加密的文件可在所有支持的操作系统和处理器上进行转移.它的口令必须是8至56个字符,并将在内部被转化为448位的密钥. 除了对您的数 ...
- Druid 数据库用户密码加密 代码实现
druid-1.0.16.jar 阿里巴巴的开源数据连接池 jar包 明文密码+私钥(privateKey)加密=加密密码 加密密码+公钥(publicKey)解密=明文密码 程序代码如下: pack ...
- 用RSA加密实现Web登录密码加密传输
通常我们做一个Web应用程序的时候都需要登录,登录就要输入用户名和登录密码,并且,用户名和登录密码都是明文传输的,这样就有可能在中途被别人拦截,尤其是在网吧等场合. 这里顺带一个小插曲,我以前有家公司 ...
- Web安全--使用Salt + Hash将密码加密后再存储进数据库
转载原地址 http://www.bozhiyue.com/mianshiti/_net/2016/0728/314239.html (一) 为什么要用哈希函数来加密密码 如果你需要保存密码(比如网站 ...
- 转载 C#使用Salt + Hash来为密码加密
转载 http://www.csharpwin.com/csharpspace/13412r9615.shtml (一) 为什么要用哈希函数来加密密码 如果你需要保存密码(比如网站用户的密码),你要考 ...
随机推荐
- bzoj1127[POI2008]KUP 悬线法
Time Limit: 10 Sec Memory Limit: 162 MBSec Special JudgeSubmit: 485 Solved: 174[Submit][Status][D ...
- jquery checkbox是否选中
$("#chkDisplayZxOnly").is(":checked") 选中返回true,否则返回false
- web性能优化之---JavaScript中的无阻塞加载性能优化方案
一.js阻塞特性 JS 有个很无语的阻塞特性,就是当浏览器在执行JS 代码时,不能同时做其他任何事情,无论其代码是内嵌的还是外部的. 即<script>每次出现都会让页面等待脚本的解析和执 ...
- 【python进阶】Garbage collection垃圾回收1
前言 GC垃圾回收在python中是很重要的一部分,同样我将分两次去讲解Garbage collection垃圾回收,此篇为Garbage collection垃圾回收第一篇,下面开始今天的说明~~~ ...
- 利用生产者消费者模型和MQ模型写一个自己的日志系统-并发设计里一定会用到的手段
一:前言 写这个程序主要是用来理解生产者消费者模型,以及通过这个Demo来理解Redis的单线程取原子任务是怎么实现的和巩固一下并发相关的知识:这个虽然是个Demo,但是只要稍加改下Appender部 ...
- C++框架_之Qt的信号和槽的详解
C++_之Qt的信号和槽的详解 1.概述 信号槽是 Qt 框架引以为豪的机制之一.所谓信号槽,实际就是观察者模式.当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal ...
- python学习之路网络编程篇(第五篇)-续篇
Python堡垒机实现之基础知识 一般的堡垒机必须要具备以下5个基本功能: 1.权限控制 2.执行命令 3.上传下载文件 4.远程登录 5.记录操作 权限控制 说明:根据不同的登录用户分配不同的可管理 ...
- asp.net使用session完成: 从哪个页面进入登录页面,登录成功还回到那个页面
1.在Login.aspx页面Load中加入 if (!IsPostBack && Request.UrlReferrer != null) { Session[ " ...
- MongoDB 连接
启动 MongoDB服务 在前面的教程中,我们已经讨论了如何启动MongoDB服务,你只需要在MongoDB安装目录的bin目录下执行'mongod'即可. 执行启动操作后,mongodb在输出一些必 ...
- OpenResty 执行阶段的概念和用途
主要还是 Nginx 的执行阶段知识了,都是因为 OR 才会那么深刻, 它有些自己的阶段. 主要还是参照 春哥的 Nginx 教程 请多读几遍,如果不清楚nginx的执行阶段就无法充分利用 openr ...