AES加密C#(帮助)和Decrypt in Java(完成)

我们有一个.NET应用程序需要将一些数据传递给Java应用程序。 我们想要给它一些简单的加密,MC Hawking不会被黑客入侵,但它不需要是纯文本。

我发现了一些很棒的Java代码,可以让我使用AES加密/解密。 我希望找到的是C#的匹配,它将让我加密一个可以用我的Java例程解密的字符串。

这是我的java类:

class SimpleProtector { private final String ALGORITHM = "AES"; private final byte[] keyValue = new byte[] { 'T', 'h', 'i', 's', 'I', 's', 'A', 'S', 'e', 'c', 'r', 'e', 't', 'K', 'e', 'y' }; public String encrypt(String valueToEnc) throws Exception { Key key = generateKey(); Cipher c = Cipher.getInstance(ALGORITHM); c.init(Cipher.ENCRYPT_MODE, key); byte[] encValue = c.doFinal(valueToEnc.getBytes()); String encryptedValue = new BASE64Encoder().encode(encValue); return encryptedValue; } public String decrypt(String encryptedValue) throws Exception { Key key = generateKey(); Cipher c = Cipher.getInstance(ALGORITHM); c.init(Cipher.DECRYPT_MODE, key); byte[] decordedValue = new BASE64Decoder().decodeBuffer(encryptedValue); byte[] decValue = c.doFinal(decordedValue); String decryptedValue = new String(decValue); return decryptedValue; } private Key generateKey() throws Exception { Key key = new SecretKeySpec(keyValue, ALGORITHM); return key; } } 

谢谢你的任何提示!

查看此问题的答案: 在C#中使用AES加密

我们可以在c#中进行加密/解密,而在java中进行加密/解密,而不使用任何其他第三方api。 请转到下面给出的链接,非常简单。 http://zenu.wordpress.com/2011/09/21/aes-128bit-cross-platform-java-and-c-encryption-compatibility/

我发现用Java加密/解密然后用C#做另一个的唯一方法就是使用bouncy castle的API( http://www.bouncycastle.org/documentation.html )。

如果你想加密并使其更难破解,你最好的选择是首先压缩它,然后加密,然后加密看起来更随机的东西。

有关在C#和Java中使用AES的讨论,您可以查看以下消息: http : //forums.sun.com/thread.jspa?threadID = 603209

您将需要使用BouncyCastle来序列化/反序列化加密密钥,为了安全起见,您可能希望使用RSA将其加密并由另一种语言解密,再次使用BouncyCastle来序列化/反序列化密钥。