0

I have a string that encrypted in java by "AES", Now i need decrypt in my C# program (I have the key)

Now i need decrypt in C#.How do I decode it into the C#?

my Encrypte and Decrypt in java :

public class AES {

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);
    //ggggg
    byte[] result = decrypt(rawKey, enc);
    return new String(result);
}

private static byte[] getRawKey(byte[] seed) throws Exception {             
    KeyGenerator keygen = KeyGenerator.getInstance("AES");
    SecureRandom secrand = SecureRandom.getInstance("SHA1PRNG", "Crypto");
    secrand.setSeed(seed);
    keygen.init(128, secrand);
    SecretKey seckey = keygen.generateKey();
    byte[] rawKey = seckey.getEncoded();
    return rawKey;
}


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);
    //0000
    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));
}

and

          try {
            String plaintext = "Hello world", key = "111";
            String ciphertext = AES.encrypt(key, plaintext);
            Log.i("ddddddd",ciphertext);

            String plaintext2 = AES.decrypt(key, ciphertext);
            Log.i("ddddddd","Encrypting '" + plaintext +
                               "' yields: (" + ciphertext.length() + ") " + ciphertext);
            Log.i("ddddddd","Decrypting it yields: " + plaintext2);
          }
          catch (Exception ex) {
              ex.printStackTrace();
          }

Now i need decrypt in C#.How do I decode it into the C#?

6
  • Have you googled? Commented Dec 12, 2014 at 12:55
  • yes but not work any sample Commented Dec 12, 2014 at 12:56
  • I dont think so. here stackoverflow.com/questions/3226813/… Commented Dec 12, 2014 at 12:58
  • 2087C5B4DB21313ED81DA100F5036090 is my encrypted String and my key is 111 for decode What else is needed? Commented Dec 12, 2014 at 13:02
  • you need IV if used during encryption. Commented Dec 12, 2014 at 13:20

1 Answer 1

1

the best way would be to use the RijndaelManaged Class to perform your task in C#.

Here you can find an excellent example on encryption/decryption: https://stackoverflow.com/a/212707/282649

Let me know...

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.