jsign
Janeiro 12, 2011, 3:19pm
#1
Boa tarde pessoal.
Gostaria de saber qual a criptografia que o oracle usa para criar as senhas de usuarios.
Com o comando :
SELECT USERNAME, PASSWORD FROM DBA_USERS
tenho acesso ao usuário e senha.
Preciso saber se tem algum algoritimo java que possibilite o comparar o valor deste retorno (PASSWORD) com uma STRING ex:
...
String o = criptografiaOracle('9793B3777CD3BD1A')
if(o.equals('DESIGNCOMD')){
// aqui que quero chegar
}
...
Jsign
Se fomos pessoas de sorte, e os programadores da Oracle forem bons, eles usam algum tipo de algoritmo de hash bom (algum melhor que o MD5).
Então, a resposta para a sua dúvida é: não. Não existe como vc descobrir a senha verdadeira.
depende como você está incluindo a informação no banco.
No caso do Oracle você pode passar a função dbms_obfuscation_toolkit.md5(‘valor’) e ele encripta…
Ou então, você pode passar via código utilizando uma criptografia qualquer e colando no seu SQL.
jsign
Janeiro 12, 2011, 7:39pm
#4
DexterDF, Clone_sealot
Obrigado.
Talvez não tenha me explicado direito.
Temos dois sistemas na empresa.
Um é tercerizado, um erp, em oracle (vamos apilida-lo de sisOracle)
Os usuários deste sistema oracle são os proprios usuários do banco, o login deles no sistema é a partir de um usuário oracle.
O outro sistema é em JAVA com Mysql. (vamos apilida-lo de sisMysql)
Eu preciso que o mesmo usuário do sistema sisOracle faça login no sistema sisMysql
Eu criei uma estrutura (bean) identica de usuario do sistema sisOracle para o sistema sisMysql.
Quero administrar o login a partir da base mysql, não quero ficar testando conexoes em oracle apenas para estabelecer o login do usuário.
nota: tenho rotinas que ocorrem de tempos em tempos atualizando a base sisMysql com os dados da base sisOracle
Eu consigo capturar os valores do usuário oracle, mas não consigo comparar os valores do password.
Clone, não me expliquei direito, não se trata de descobir a senha verdadeira, sim de comparar dois hashs.
ex:
String senha = superClasseOracle.encodeOracleSamplePass( usuarioSistemaMysql.getSenha() ); // parametro vindo do form
// .....
String sql = " SELECT * FROM usuarioSistemaMysql WHERE senha = " + senha ;
Pra que isso ocorra preciso de um metodo tipo esse carinha de: superClasseOracle.encodeOracleSamplePass
Mas obrigado pelo esforço.
Se souberem de alguma solução me avisem.
Abçs
Jsign
jsign
Janeiro 13, 2011, 9:10am
#5
Pessoal, alguem tem idéia ?
JSign