luceliopv 6 de jun. de 2009
blz, eu tava invertendo ali… agora ele grava certinho, só que queria que ele gravasse a senha “criptografada” no arquivo .ini. Ele ateh grava, mas qdo vou descriptar da um erro.
Esse código grava ou altera os valores do banco.ini, a senha eu acho que ele cripfografa e joga no valor senha.
try {
KeyGenerator keygen = KeyGenerator . getInstance ( "AES" );
SecretKey aesKey = keygen . generateKey ();
Cipher aesCipher = Cipher . getInstance ( "AES" );
String sen = String . valueOf ( jPFSenhaBanco . getPassword ());
byte [] senha = sen . getBytes ();
aesCipher . init ( Cipher . ENCRYPT_MODE , aesKey );
byte [] senhaCriptografada = aesCipher . doFinal ( senha );
Properties props = new Properties ();
FileInputStream fis = null ;
try {
fis = new FileInputStream ( "banco.ini" );
props . load ( fis );
fis . close ();
} catch ( IOException ex ) {
System . out . println ( ex . getMessage ());
ex . printStackTrace ();
}
if ( jCBTipoBanco . getSelectedIndex () == 0 ) {
props . setProperty ( "tipo" , "firebird" );
} else {
if ( jCBTipoBanco . getSelectedIndex () == 1 ) {
props . setProperty ( "tipo" , "sqlServer" );
}
}
props . setProperty ( "caminho" , jTFCaminhoBanco . getText ());
props . setProperty ( "usuario" , jTFUsuarioBanco . getText ());
props . setProperty ( "senha" , new String ( senhaCriptografada ));
FileOutputStream fos = null ;
try {
fos = new FileOutputStream ( "banco.ini" );
props . store ( fos , null );
fos . close ();
} catch ( IOException ex ) {
System . out . println ( ex . getMessage ());
ex . printStackTrace ();
}
} catch ( Exception ex ) {
ex . printStackTrace ();
}
Agora o código que joga esses dados nos campos e tal
try {
Properties confBanco = new Properties ();
confBanco . load ( new FileInputStream ( "banco.ini" ));
Variaveis . tipoBanco = confBanco . getProperty ( "tipo" );
if ( Variaveis . tipoBanco . equals ( "firebird" )) {
jCBTipoBanco . setSelectedIndex ( 0 );
} else {
if ( Variaveis . tipoBanco . equals ( "sqlServer" )) {
jCBTipoBanco . setSelectedIndex ( 1 );
}
}
Variaveis . caminhoBanco = confBanco . getProperty ( "caminho" );
jTFCaminhoBanco . setText ( Variaveis . caminhoBanco );
Variaveis . usuarioBanco = confBanco . getProperty ( "usuario" );
jTFUsuarioBanco . setText ( Variaveis . usuarioBanco );
Variaveis . senhaBanco = confBanco . getProperty ( "senha" );
// trata da senha , joga descriptada no edit .
try {
KeyGenerator keygen = KeyGenerator . getInstance ( "AES" );
SecretKey aesKey = keygen . generateKey ();
Cipher aesCipher = Cipher . getInstance ( "AES" );
aesCipher . init ( Cipher . DECRYPT_MODE , aesKey );
byte [] senhaDescriptografada = aesCipher . doFinal ( Variaveis . senhaBanco . getBytes ()); // erro aqui
jPFSenhaBanco . setText ( senhaDescriptografada . toString ());
} catch ( Exception ex ) {
ex . printStackTrace ();
}
} catch ( IOException ioe ) {
JOptionPane . showMessageDialog ( this , ioe + " Erro" );
}
Qualquer ajuda é bem vinda
valeu