David R.
David R.

Reputation: 51

Android AES encryption secret key

I'm developping an Android app and i wanna do encryption with AES-128. I use secret key and text with hexadecimal.

I use this website : http://testprotect.com/appendix/AEScalc to compute the AES encryption with the following key : "c4dcc3c6ce0acaec4327b6098260b0be" and my text to encrypt is : "6F4B1B252A5F0C3F2992E1A65E56E5B8" (hexadecimal).

So the result from this website give me "859499d0802de8cc6ba4f208da648a8f" and that's the result i wanna get. http://hpics.li/d89105a

I find some code on the net, but a lot uses seed to generate random secret key and i wanna fix the secret key. Actually i'm using the following code, i think it's the code i need but the result gives me D/resultdebug: 72adc67b6d11e1c5fb89ddf5faeb0e030686b91f8bfaf6c41335f08955343f87 and it's not the same result than the website, that i want.

 String text16 = "6F4B1B252A5F0C3F2992E1A65E56E5B8";
    String secret16 = "c4dcc3c6ce0acaec4327b6098260b0be";

    SecretKeySpec sks = new SecretKeySpec(secret16.getBytes(),"AES");
    Cipher c = Cipher.getInstance("AES");

    c.init(Cipher.ENCRYPT_MODE, sks);
    c.update(text16.getBytes());
    byte[] ciphertext = c.doFinal();
    Log.d("resultdebug",new String(Hex.encode(ciphertext), "ASCII"));

Could you please tell me what's wrong, thanks.

Upvotes: 1

Views: 1764

Answers (2)

David R.
David R.

Reputation: 51

Thanks zaph, it solved my problem

I added these two lines on my code :

    byte[] text = stringhextobyte(text16);
    byte[] secret = stringhextobyte(secret16);

And the function stringhextobyte permit me to transform my hex string to byte array and i get the result needed.

Upvotes: 1

zaph
zaph

Reputation: 112857

You are not converting the hex to binary, you are getting the binary of the characters not the value that is hex encoded.

Upvotes: 1

Related Questions