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

图片.png

问题现象:

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/

图片.png
解压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》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值