【发布时间】:2013-10-09 16:18:14
【问题描述】:
我有以下需要翻译成 c# 的 Java 代码:
public static byte[] encryptAES(byte[] toEncrypt, byte[] key,
boolean encrypte) throws Exception {
Security.addProvider(new BouncyCastleProvider());
byte[] iv = { (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00 };
IvParameterSpec salt = new IvParameterSpec(iv);
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding", "BC");
if (encrypte == false)
cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key, "AES"), salt);
else
cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key, "AES"), salt);
byte[] result = cipher.doFinal(toEncrypt);
return result;
}
你是如何做到的:
Security.addProvider(new BouncyCastleProvider());
什么是等价的:
IvParameterSpec salt = new IvParameterSpec(iv);
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding", "BC");
【问题讨论】:
-
感谢 SLaks。我试过了,但没有好的结果。对方给了我一个使用 BoucyCastle 的有效 Java 示例,所以我想我会使用它。 AESManaged 类中没有 PKCS5Padding。 (虽然我不认为这有什么区别)
-
@ntoskrnl 感谢这篇有趣的文章!!但是不,我不打算让别人做我的工作。我确实尝试了很多,首先使用 AESManaged,然后我请求了对方的技术帮助,对方刚刚给了我 Jave 代码,现在我只想让 BouncyCastle 工作......
-
有一个 BouncyCastle c# 版本。尝试一下? bouncycastle.org/csharp
标签: c# java encryption cryptography bouncycastle