2007年10月9日 星期二

Oracle ERP帳號的密碼取得

最近User常常打來問說為何他的ERP密碼進不去,要來要回他原有的密碼。以前遇到這種情況,就只能重新設定一組新的密碼請User進去更改。

這幾天無意間發現Oracle ERP 的Package有遇留一個未開放的function,裡面是去Call一段java function,看起來很像是解密的功能,於是就給他試了一下。果然,除了對在Oracle ERP註冊的App. DB密碼可解,對於Oracle ERP本身建立的User帳號也行,以下就來看看:

1. 首先先建立一個function,引用oracle.apps.fnd.security.WebSessionManagerProc.decrypt
create function test_get_pwd(apps_key in varchar2, pwd_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'; 其中apps_key傳入APPS的密碼,pwd_value則傳入加密過的密碼字串

2. Select test_get_pwd 傳入APPS的密碼及fnd_user 的 ENCRYPTED_USER_PASSWORD欄位值,例如:
select test_get_pwd('APPS',ENCRYPTED_USER_PASSWORD)
from fnd_user where user_name = 'TEST'

看看結果如何,有興趣的話可以試看看。

1 則留言:

☆晴天●藍天●浮雲☆ 提到...

請問為什麼照著您的方法做,SELECT出來是空的呢?還是說這個方式被Oracle修正了呢?