vardhman shah Ответов: 1

Как сделать шифрование openssl AES256 на языке C#


Привет,
У меня есть пример кода на Java для вашей справки.

  public static String decryptOpenSSL(String key,String data) throws IOException, GeneralSecurityException{
	   
	    OpenSSL opensll=new OpenSSL();
	    InputStream  is=OpenSSL.decrypt("AES256", key.getBytes(), new ByteArrayInputStream(data.getBytes()));
	    Base64 encode=new Base64();
	    
	     
	    BufferedReader in = new BufferedReader(new InputStreamReader(is));
	    String inputLine;
	   StringBuffer response = new StringBuffer();

	   while ((inputLine = in.readLine()) != null) {
	    response.append(inputLine);
	   }
	   in.close();
	      System.out.println(response);
	      //return encode.encode(response.toString().getBytes()).toString();
	      return response.toString();
	   }

public static String encryptOpenSSL(String key,String data) throws IOException, GeneralSecurityException{
	  
  	OpenSSL opensll=new OpenSSL();
  	InputStream  is=OpenSSL.encrypt("AES256", key.getBytes(), new ByteArrayInputStream(data.getBytes()), true);
  	BufferedReader in = new BufferedReader(new InputStreamReader(is));
  	String inputLine;
		StringBuffer response = new StringBuffer();

		while ((inputLine = in.readLine()) != null) {
			response.append(inputLine);
		}
		in.close();
     System.out.println(response);
     return response.toString();
  } 


Что я уже пробовал:

Я пробовал openssl ags nuget, но не работал для меня.

Sandeep Mewara

Теперь вы уверены, в чем проблема?

Вы смотрели на него?:
https://stackoverflow.com/questions/15470190/aes-256-cbc-encryption-with-openssl-and-decryption-in-c-sharp
https://medium.com/asecuritysite-when-bob-met-alice/producing-an-aes-cipher-to-match-openssl-in-c-94209ba9615b

1 Ответов

Рейтинг:
0

Garth J Lancaster

"но не работает для меня" - это довольно бесполезное описание - зачем вам делать шифрование openssl AES в C#, когда фреймворк имеет его встроенным - АЭС Класса (Система.Безопасность.Криптографии) | Майкрософт Документы[^]


vardhman shah

У меня есть один API, и в API используется этот тип шифрования. вот почему.

Спасибо

Garth J Lancaster

хорошо, хорошо 2-я ссылка из Sandeep показывает вам, как достичь того же самого без а) преобразования Java -> C# или б) использования внешней/Не C# Фреймворковой библиотеки