壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17132|回复: 8

ORACLE erp 用户密码加密算法

[复制链接]
发表于 2006/7/10 10:53:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
http://www.itpub.net/514216.html
这是ITPub的原帖,因为要使用,所以归纳到这里了。

哪位知道ORACLE ERP用户密码加密算法的程序,如何调用?

有使用过的吗?



  1. 你看看这个程序包
  2. FND_WEB_SEC

  3. 这个程序包里有个encycle 和 decycle的过程 是用来加密和解密的
  4. 程序 但是调用JAVA的程序 你可以把这个JAVA程序找出来 反
  5. 编译一下就可以看到这个算法了 还是比较复杂的。

  6. 不过你可以直接调用他的程序就好了。

复制代码




  1. 我知道这个,fnd_web_sec.validate_login(P_USER,P_PASSWORD)返回:Y/N,可以知道用户密码是否正确,可是如何调用它的加密程序?
  2. 如:我输入密码:123456,返回的字符是加密后的.
  3. 还可以调用解密程序,将那一长串的字符再返回用户的真实密码.不知道有没有这样的PKG?
复制代码





  1. DECLARE
  2. v_encrypted_pwd VARCHAR2 (200);
  3. v_apps_pwd VARCHAR2 (100);
  4. v_user_pwd VARCHAR (100);
  5. BEGIN
  6. v_encrypted_pwd :='ZG9866246E52A5FA57312543631C858618F1A357EAFC451B6ECDF013E7D7ADB23889599020EFD5BAEE2D848AAAA55C08DD7F';
  7. --get ENCRYPTED_USER_PASSWORD from fnd_user
  8. IF v_apps_pwd IS NULL THEN
  9. v_apps_pwd := 'APS123C';
  10. END IF;
  11. v_user_pwd := XX_JOODHAWK_TEST_PKG.getpwd (v_apps_pwd, v_encrypted_pwd);
  12. DBMS_OUTPUT.put_line (v_user_pwd);
  13. END;
复制代码



-- Function to encrypt a string using a specified key.

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 to decrypt an encrypted string using a specified key.

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';


__________________
MSN: kmljq_2004@hotmail.com
QQ: 353709159
 楼主| 发表于 2006/7/10 11:04:57 | 显示全部楼层
这是包FND_WEB_SEC的描述,修改密码用:
FUNCTION change_password(p_user     IN VARCHAR2,
                           p_old_pwd  IN VARCHAR2,
                           p_new_pwd1 IN VARCHAR2,
                           p_new_pwd2 IN VARCHAR2) RETURN VARCHAR2;

  -- Changes the password of an applications user without verifying
  -- the existing pasword.  Returns 'Y' on success and 'N' on failure.

  FUNCTION change_password(p_user IN VARCHAR2, p_new_pwd IN VARCHAR2)




  1. CREATE OR REPLACE PACKAGE fnd_web_sec AUTHID CURRENT_USER AS
  2.   /* $Header: AFSCJAVS.pls 115.27 2004/12/15 23:13:08 mskees ship $ */

  3.   /*
  4.   * Validate_login
  5.   *   Test a username and password without updating audit tables.
  6.   *   Only use this api to authenticate a user password when you do not
  7.   *   expect that user to login or create a session.
  8.   *
  9.   *   NOTE: This api only works for LOCAL users (i.e., for users who are
  10.   *   not SSO enabled.)
  11.   * IN
  12.   *   p_user - username
  13.   *   p_password - password
  14.   * RETURNS
  15.   *   'Y' if user/password is valid, 'N' if not
  16.   * RAISES
  17.   *   Never raises exceptions, returns 'N' with a message on the
  18.   *   message stack if an error is encountered.
  19.   */
  20.   FUNCTION validate_login(p_user IN VARCHAR2, p_pwd IN VARCHAR2)
  21.     return VARCHAR2;

  22.   /*
  23.   * Validate_login
  24.   *   Validate a username and password, and update audit tables with
  25.   *   results. Use this api if the user is expected to login.
  26.   *
  27.   *   NOTE: This api only works for LOCAL users (i.e., for users who are
  28.   *   not SSO enabled.)
  29.   * IN
  30.   *   p_user - username
  31.   *   p_password - password
  32.   *   p_loginfrom - flag indicating a login UI was used for access
  33.   * OUT
  34.   *   p_loginID - Login ID of audit record (if successful)
  35.   *   p_expired - Expiration flag to check whether user's password has expired.
  36.   * RETURNS
  37.   *   'Y' if user/password is valid, 'N' if not
  38.   * RAISES
  39.   *   Never raises exceptions, returns 'N' with a message on the
  40.   *   message stack if an error is encountered.
  41.   */
  42.   FUNCTION validate_login(p_user      IN VARCHAR2,
  43.                           p_pwd       IN VARCHAR2,
  44.                           p_loginID   OUT nocopy NUMBER,
  45.                           p_expired   OUT nocopy VARCHAR2,
  46.                           p_loginfrom IN VARCHAR2 default null)
  47.     return VARCHAR2;

  48.   /* This procedure logs an unsuccessful_login attempt which would normally come from
  49.   * FUNCTION validate_login(p_user       IN VARCHAR2,
  50.   *                           p_pwd      IN VARCHAR2,
  51.   *                           p_loginID OUT NUMBER,
  52.   *                           p_expired OUT VARCHAR2)
  53.   */
  54.   PROCEDURE unsuccessful_login(userID IN NUMBER);

  55.   -- Creates a new application user in the FND_USER table.
  56.   -- Returns 'Y' on success and 'N' on failure.
  57.   -- If successful, returns the new user_id.

  58.   FUNCTION create_user(p_user    IN VARCHAR2,
  59.                        p_pwd     IN VARCHAR2,
  60.                        p_user_id OUT nocopy NUMBER) RETURN VARCHAR2;

  61.   -- Changes the password of an applications user after verifying
  62.   -- the existing pasword.  Returns 'Y' on success and 'N' on failure.

  63.   FUNCTION change_password(p_user     IN VARCHAR2,
  64.                            p_old_pwd  IN VARCHAR2,
  65.                            p_new_pwd1 IN VARCHAR2,
  66.                            p_new_pwd2 IN VARCHAR2) RETURN VARCHAR2;

  67.   -- Changes the password of an applications user without verifying
  68.   -- the existing pasword.  Returns 'Y' on success and 'N' on failure.

  69.   FUNCTION change_password(p_user IN VARCHAR2, p_new_pwd IN VARCHAR2)
  70.   
  71.    RETURN VARCHAR2;

  72.   -- Changes the password of an existing " web user" - previously
  73.   -- in fnd_web_user table. For Internal use only.

  74.   FUNCTION upgrade_web_password(p_user        IN VARCHAR2,
  75.                                 p_enc_web_pwd IN VARCHAR2,
  76.                                 p_new_pwd     IN VARCHAR2) RETURN VARCHAR2;

  77.   -- Validates a user's password.

  78.   function validate_password(username in varchar2, password in varchar2)
  79.     return varchar2;

  80.   -- Updates entries in FND_USER_PREFERENCES that support the
  81.   -- "no reuse within X days" password validation feature.

  82.   procedure update_no_reuse(username in varchar2, password in varchar2);

  83.   -- Return user password encrypted with new key
  84.   --  If mode = 'OID' then uses an algorithm that OID can decrypt on their end
  85.   function get_reencrypted_password(username in varchar2,
  86.                                     new_key  in varchar2,
  87.                                     p_mode   in varchar2 default null)
  88.     return varchar2;

  89.   -- Set user password from value returned from get_reencrypted_password
  90.   function set_reencrypted_password(username in varchar2,
  91.                                     reencpwd varchar2,
  92.                                     new_key  in varchar2) return varchar2;

  93.   -- Return oracle user password decrypted. This is mainly used by
  94.   -- FND_ORACLE_SCHEMA.GetSchemaPassword().
  95.   function get_op_value(username in varchar2, applsyspwd in varchar2)
  96.     return varchar2;

  97.   -- Creates a new oracle user in the FND_ORACLE_USERID table.
  98.   -- Returns 'Y' on success and 'N' on failure.
  99.   -- If successful, returns the new user_id.

  100.   FUNCTION create_oracle_user(p_user    IN VARCHAR2,
  101.                               p_pwd     IN VARCHAR2,
  102.                               p_newkey  IN VARCHAR2,
  103.                               p_user_id OUT nocopy NUMBER) RETURN VARCHAR2;

  104.   -- Return user password encrypted with new key
  105.   function get_reencrypted_oracle_pwd(username in varchar2,
  106.                                       new_key  in varchar2) return varchar2;

  107.   -- Return user password converted from cur_key to right key for storing in db
  108.   function cvt_reencrypted_oracle_pwd(pwd in varchar2, cur_key in varchar2)
  109.     return varchar2;

  110.   -- Use the given key to encrypt the given string by calling
  111.   -- WebSessionManagERProc.encrypt().

  112.   function encrypt(key in varchar2, value in varchar2) return varchar2;

  113.   -- A different encryption routine, calls through to
  114.   -- WebSessionManagerProc.URLEncrypt().

  115.   function URLEncrypt(key in varchar2, value in varchar2) return varchar2;

  116.   -- This routine is for AOL INTERNAL USE ONLY !!!!!!!
  117.   -- Changes the password of the applications GUEST user without verifying
  118.   -- the existing password.  Returns 'Y' on success and 'N' on failure.
  119.   --
  120.   -- bug 4051516 allow AdminAppServer to pass fnd pass as key to remove
  121.   -- dependancy on the guest password being correct to reset it.
  122.   -- Requires AFSCJAVB.pls 115.63 and AdminAppServer.java

  123.   FUNCTION change_guest_password(p_new_pwd IN VARCHAR2,
  124.                                  p_key     IN VARCHAR2 default NULL)
  125.     RETURN VARCHAR2;

  126.   -- bug 4047740 used by loader when creating a new user
  127.   INVALID_PWD CONSTANT VARCHAR2(25) := '**FND_INVALID_PASSWORD**';

  128. END FND_WEB_SEC;

复制代码

fnd_web_sec.pck

54.95 KB, 下载次数: 40, 下载积分: 努力值 -5 点

发表于 2006/12/14 16:32:17 | 显示全部楼层

我試了一下,不能用呢,

我试了一下,有些方法可以,有些不行,这是为什么?
一直return 'N' 而我又不知道为什么返回'N'
发表于 2007/12/23 11:14:32 | 显示全部楼层

一直在用,但不知道算法

一直在用,但不知道算法
发表于 2008/1/16 13:55:28 | 显示全部楼层
:/why
发表于 2008/5/11 21:49:09 | 显示全部楼层
嗯,研究一下
发表于 2008/6/21 11:59:00 | 显示全部楼层
研究一下
发表于 2008/6/27 10:30:33 | 显示全部楼层
不是很懂
发表于 2011/9/23 19:19:32 | 显示全部楼层
{:soso_e121:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 22:36 , Processed in 0.022666 second(s), 17 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表