Have you tried simply running the same string through the same algorithm on the same platform more than once? It appears to me that you're calculating a new key every time, so obviously the results would be different.
On Apr 26, 10:58 pm, me mine <[email protected]> wrote: > Hi all, > I use encryption method like at > post:http://groups.google.com/group/android-developers/browse_thread/threa.... > > public class SimpleCrypto { > > public static String encrypt(String seed, String cleartext) > throws > Exception { > byte[] rawKey = getRawKey(seed.getBytes()); > byte[] result = encrypt(rawKey, > cleartext.getBytes()); > return toHex(result); > } > > public static String decrypt(String seed, String encrypted) > throws > Exception { > byte[] rawKey = getRawKey(seed.getBytes()); > byte[] enc = toByte(encrypted); > byte[] result = decrypt(rawKey, enc); > return new String(result); > } > > private static byte[] getRawKey(byte[] seed) throws Exception > { > KeyGenerator kgen = KeyGenerator.getInstance("AES"); > SecureRandom sr = > SecureRandom.getInstance("SHA1PRNG"); > sr.setSeed(seed); > kgen.init(128, sr); // 192 and 256 bits may not be > available > SecretKey skey = kgen.generateKey(); > byte[] raw = skey.getEncoded(); > return raw; > } > > private static byte[] encrypt(byte[] raw, byte[] clear) throws > Exception { > SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); > Cipher cipher = Cipher.getInstance("AES"); > cipher.init(Cipher.ENCRYPT_MODE, skeySpec); > byte[] encrypted = cipher.doFinal(clear); > return encrypted; > } > > private static byte[] decrypt(byte[] raw, byte[] encrypted) > throws > Exception { > SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); > Cipher cipher = Cipher.getInstance("AES"); > cipher.init(Cipher.DECRYPT_MODE, skeySpec); > byte[] decrypted = cipher.doFinal(encrypted); > return decrypted; > } > > public static String toHex(String txt) { > return toHex(txt.getBytes()); > } > public static String fromHex(String hex) { > return new String(toByte(hex)); > } > > public static byte[] toByte(String hexString) { > int len = hexString.length()/2; > byte[] result = new byte[len]; > for (int i = 0; i < len; i++) > result[i] = > Integer.valueOf(hexString.substring(2*i, 2*i+2), > 16).byteValue(); > return result; > } > > public static String toHex(byte[] buf) { > if (buf == null) > return ""; > StringBuffer result = new StringBuffer(2*buf.length); > for (int i = 0; i < buf.length; i++) { > appendHex(result, buf[i]); > } > return result.toString(); > } > private final static String HEX = "0123456789ABCDEF"; > private static void appendHex(StringBuffer sb, byte b) { > > sb.append(HEX.charAt((b>>4)&0x0f)).append(HEX.charAt(b&0x0f)); > } > > } > > since i can not get work same encryption method in php webserver, i do > it using jsp webserver. > but the result of the encryption is not same. > example: > plain: test > key: 123456 > encrypt: 1D402811E4FDD1B14412B3E1AA328450 > > but in the android, i got: ACE3D0F0C96B2B13DDD6372A61DFCAA5 > > i did print both of the code, to check if one of them have different, > but it is same. > > can someone help what possible wrong or what i should check in both > code? > or.. the encryption method is not match by the one done with jsp ? -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

