Jump to content

Problemas no tratamento de mensagens cifradas


jarsantos
 Share

Go to solution Solved by jarsantos,

Recommended Posts

Boas,

estou a fazer um projecto de segurança em redes em java que envolve cifrar partes das mensagens que envio pela rede.

As minhas mensagens são constituídas da seguinte forma:

Request: num(NEW_LINE)

'Header cifrado'(NEW_LINE)

'Body cifrado'(NEW_LINE)

Quando o servidor recebe a mensagem devia ser capaz de dividir a mensagem nas 3 partes e depois tratar cada uma delas de forma isolada.

Para fazer isto converti a mensagem no formato byte array para String, usei a função de split e converti novamente cada uma das partes para byte array.

O problema está que quando tento decifrar o header e o body diz que o tamanho dos dados não é o correcto ou então BadPadding. Julgo que este problema se deve à conversão de byte array para String e depois de String para byte array.

Portanto a minha questão é a seguinte: Sabem alguma forma de separar as mensagens sem ser necessário converter de byte array para outro formato? Se não, para que formato devo converter e como devo converter?

PS: para ter a certeza que estava a cifrar e decifrar convenientemente tentei decifrar o header e o body antes de os concatenar (em formato byte array) e funcionou.

Link to comment
Share on other sites

  • Solution

Problema resolvido. Criei uma função própria que descobre padrões no byte array.

private Vector<byte[]> splitMessage(byte[] message)
{
	byte[] tab = NEW_LINE.getBytes();
	Vector<byte[]> messageParts = new Vector<byte[]>();

	for(int i = 0, j = 0, k = -1; i < message.length; i++)
	{
		if(message[i]==tab[j])
		{
			j++;

			if(j==tab.length)
			{
				byte[] aux = new byte[i-j-k];
				System.arraycopy(message, k+1, aux, 0, i-j-k);
				messageParts.add(aux);
				j=0;
				k=i;
			}
		}
		else
		{
			j=0;
		}
	}
	return messageParts;
}
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.