У меня есть следующие шифрования/дешифрования методов на JAVACipher, Java шифровать, C# расшифровать
private static final String ALGORITHM = "AES";
protected static String encrypt(String valueToEnc, byte[] keyValue) throws Exception {
Key key = generateKey(keyValue);
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;
}
protected static String decrypt(String encryptedValue, byte[] keyValue) throws Exception {
try
{
Key key = generateKey(keyValue);
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;
}
catch(Exception ex)
{
return "";
}
}
private static Key generateKey(byte[] keyValue) throws Exception {
Key key = new SecretKeySpec(keyValue, ALGORITHM);
return key;
}
Что было бы эквивалентно дешифрования для (C#). NET ?. Я проверил некоторые примеры шифрования, которые я нашел, но ни один из них не возвращает то же, что и версия Java.
Спасибо.
можно дублировать? http://stackoverflow.com/questions/19698272/encrypt-in-java-and-decrypt-in-c-sharp-for-aes-256-bit –
ЕЦБ небезопасен. Вы должны использовать CBC и использовать случайный уникальный IV. – SLaks
@ThiagoCustodio, если я использую этот пример, так как это исключение «Недопустимый символ в base64». – Ferite