Oracle 数据库忘记密码,如何找回明文密码?

来源:这里教程网 时间:2026-03-03 20:32:47 作者:

问题现象 : Oracle 数据库 cjc 用户密码忘记了,如何找回明文密码?

SQL> conn cjc/******
ERROR:
ORA-01017: invalid username/password; logon denied

环境说明 :

DB:Oracle 11.2.0.4.0
OS:Oracle Linux 7.5

解决方案 : 需要借助 ops_SIMD 工具,下载地址如下 :

http://conus.info/utils/ops_SIMD/

  解压 ops_SIMD 工具

[root@cjc-db-01 ora_pass]# ls -lrth
total 240K
-rw-r--r-- 1 root root 240K Aug 31 21:02 ops_SIMD_linux86.tar
 
[root@cjc-db-01 ora_pass]# tar -xvf ops_SIMD_linux86.tar 
ops_avx
ops_sse2
 
[root@cjc-db-01 ora_pass]# ls -lrth
total 476K
-rwxr-xr-x 1 cjc  cjc   97K Mar  2  2013 ops_sse2
-rwxr-xr-x 1 cjc  cjc  133K Mar  2  2013 ops_avx
-rw-r--r-- 1 root root 240K Aug 31 21:02 ops_SIMD_linux86.tar

查看 cjc 用户密码加密值,借助工具,通过加密值破 解 出明文密码

SQL> select PASSWORD from user$ where name='CJC';
PASSWORD
------------------------------
5A4818DF59DC356A

创建列表文件,格式 :

username:密文password:instance_name
 
[root@cjc-db-01 ora_pass]# vi pass.log
cjc:5A4818DF59DC356A:cjc

开始破 解 密码 :

[root@cjc-db-01 ora_pass]#  ./ops_sse2 --hashlist=pass.log
Oracle passwords (DES) solver 0.3 (SSE2) -- Dennis Yurichev <dennis@conus.info>
Compiled @ Mar  2 2013 06:19:03
AVX instruction set is supported on this CPU.
Use ops_avx.exe, it is working faster than on SSE2 set.
username=CJC: 1 unsolved hash(es) left
Checking 1-symbol passwords for username CJC
overall progress=  0%
username=CJC: 1 unsolved hash(es) left
Checking 2-symbol passwords for username CJC
overall progress=  3% / time remaining: ?   
username=CJC: 1 unsolved hash(es) left
Checking 3-symbol passwords for username CJC
overall progress=  0%
username=CJC: 1 unsolved hash(es) left
Checking 4-symbol passwords for username CJC
overall progress=  0%
CJC/cjc: Found password: CHEN
CJC:CHEN:cjc

由于密码较短,很快找出密码 :CHEN 实际密码是小写的 chen ,验证密码,可以正常登陆 :

SQL> conn cjc/chen
Connected.
SQL> show user
USER is "CJC"

常见问题 : 由于操作系统是 64 位, ops_SIMD 工具是 32 位的,需要安装几个包,否则报错如下 :

[root@cjc-db-01 ora_pass]# ./ops_sse2 --hashlist=pass.log
-bash: ./ops_sse2: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
[root@cjc-db-01 ora_pass]#  ./ops_sse2 --hashlist=pass.log
./ops_sse2: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

解决方案 :

[root@cjc-db-01 ora_pass]# yum -y install glibc.i686
[root@cjc-db-01 ora_pass]# yum install libstdc++.so.6

###chenjuchao 20240831### 欢迎关注我的公众号《 IT Chen

相关推荐