如何解密Oracle 10g加密生成的用户密码?
Oracle 10g 加密密码破解操作说明
你提供的'S:987DFSSDF9879SDFD80FSS0D8DFH8F0H77S;234SDFSF987FSDF34E'是Oracle 10g R2及以上版本使用的加盐SHA1密码哈希,格式为S:[40位十六进制SHA1哈希值];[20位十六进制盐值],属于单向加密算法,无公开通用解密方法,仅可通过字典攻击、暴力碰撞的方式尝试还原明文密码。
第一步:预处理哈希串
- 移除首尾的引号和前缀
S:,按分号;拆分得到两部分内容 - 前半部分为SHA1哈希值,后半部分为加密用的盐值
注:你提供的样例哈希包含S、H等非法十六进制字符,合法Oracle 10g S型哈希仅包含0-9、A-F,实际操作前请先确认原始哈希的正确性,否则会导致破解失败。
第二步:使用工具破解
两种常用的开源破解工具操作方法如下:
方法1:使用hashcat破解
- hashcat对应Oracle 10g S型哈希的模式编号为112
- 将完整的
S:xxx;xxx格式哈希单独存入一个文本文件,例如命名为oracle_hash.txt - 运行命令:
hashcat -m 112 -a 0 oracle_hash.txt 字典文件路径
参数说明:
-m 112指定哈希类型为Oracle 10g加盐SHA1,-a 0指定使用字典攻击模式
方法2:使用John the Ripper破解
- 将完整的
S:xxx;xxx格式哈希单独存入一个文本文件,例如命名为oracle_hash.txt - 运行命令:
john --format=oracle11g oracle_hash.txt --wordlist=字典文件路径
注意事项
- 该加密为单向哈希,没有办法直接逆向得到明文,破解成功率完全依赖字典的覆盖度,如果密码复杂度高(长度超过8位、包含大小写、数字、特殊符号组合),破解可能需要极长时间甚至无法成功
- 破解数据库密码必须在拥有合法授权的前提下操作,未授权破解他人资产属于违规甚至违法行为,需自行承担相应责任
内容的提问来源于stack exchange,提问作者Kannan Arumugam
相关产品推荐
相关产品推荐

