Boa Noite Galera.
Mais uma vez eu estou com problemas com criptografia, mas desta vez parece ser mais simples.
preciso pegar os dados que foram salvos em um banco como bytes criptografados.
segue o print de um exemplo.
Só q eu ja pesquisei, aki no forum no google e nao consgui nada que consiga resolver o problema.
alguem já passou por isso?? podem ajudar??
des de já agradeço.
KWill
Março 26, 2009, 6:28pm
#2
Tens a documentação de quem teria sido a criatura que construi e populou essa tabela aí?
Inté.
fmad27
Março 26, 2009, 7:12pm
#3
Se o cara usou md5 por exemplo você não consegue descriptografar, mas apenas gerar um outro hash para comparar com o que você tem no banco, porém para gerar este hash você precisa conhecer a chave usada.
Galera, dei uma olhada na documentaçao, achei algo interessante.
segundo ele foi usado o metodo:“BasicCryptoString” o sistema foi feito em c#
se alguem puder ajudar, pois nao sei como usa esse metodo em java ou qualquer coisa paraceida
Obrigado.
Galera,
segue o codigo para descriptografar os dados… só q em c#
[code]Decrypt() {
byte[] data = Convert.FromBase64String(‘dados_que_vem_do_banco’);
for(int i=0, j=bytes.Length; i< j; i++)
bytes[i] = (byte)ShiftRight(bytes[i], 1);
return Encoding.ASCII.GetString(bytes);
}
UInt32 ShiftRight(UInt32 x, Byte n) {
return (UInt32)(((x) >> (n)) | ((x) >> (32-(n))));
}
[/code]
alguem pode me ajudar a passar esse codigo para java??
Obrigado.
Passa pelo menos uma palavra que passa por esse processo, assim podemos fazer algo parecido, mas é preciso ter uma massa de testes.
# Decrypt() {
# byte[] data = Convert.FromBase64String('dados_que_vem_do_banco');
# for(int i=0, j=bytes.Length; i< j; i++)
# bytes[i] = (byte)ShiftRight(bytes[i], 1);
# return Encoding.ASCII.GetString(bytes);
# }
#
# UInt32 ShiftRight(UInt32 x, Byte n) {
# return (UInt32)(((x) >> (n)) | ((x) >> (32-(n))));
# }
Encoding.ASCII.GetString (bytes) --> new String (bytes, "ISO-8859-1");
ShiftRight ->
public static int shiftRight (int b, int n) {
return (b >>> n) | (b >>> (32 - n));
}
Muito Obrigado.
mas consegui hj a tarde.
segue o codigo.
[code] 1. import java.io.IOException;
/**
*
* @author Mateus_Avelar
*/
public class EncoderL {
static String Decoder(String in) throws IOException {
byte[] buf = new sun.misc.BASE64Decoder().decodeBuffer(in);
for (int i = 0, j = buf.length; i < j; i++) {
buf[i] = ShiftRight(buf[i], 1);
}
return new String(buf);
}
public static byte ShiftRight(byte x, int n) {
int uint = x & 0xFF;
int result = (uint >> n) | (uint >> (16 - n));
return (byte) result;
}
} [/code]
Obrigado pessoal.