Anil Sharma1983 Ответов: 1

Как конвертировать java-код в C#


public static final String AES_TRANSFORMATION = "AES/ECB/PKCS5Padding";
	public static final String AES_ALGORITHM = "AES";
	public static final int ENC_BITS = 256;
	public static final String CHARACTER_ENCODING = "UTF-8";
	
	private static Cipher ENCRYPT_CIPHER;
	private static Cipher DECRYPT_CIPHER;
	private static KeyGenerator KEYGEN;	
	
	static{
		try{
			ENCRYPT_CIPHER = Cipher.getInstance(AES_TRANSFORMATION);
			DECRYPT_CIPHER = Cipher.getInstance(AES_TRANSFORMATION);
			KEYGEN = KeyGenerator.getInstance(AES_ALGORITHM);
			KEYGEN.init(ENC_BITS);
		}catch(NoSuchAlgorithmException | NoSuchPaddingException e) {
			e.printStackTrace();
		}
	}
	private static String generateSecureKey() throws Exception{
		SecretKey secretKey = KEYGEN.generateKey();
		return encodeBase64String(secretKey.getEncoded());
	}


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

у меня есть другой выход при переходе на c#

дополнение из комментария ниже-Nelek
я попытался генрировать ключ
public byte[] GenerateKey()
    {
                    
        using (var aes = CreateAes256Algorithm())
        {

            aes.GenerateKey();
            return aes.Key;
        }
    }

    private RijndaelManaged CreateAes256Algorithm()
    {
        return new RijndaelManaged { KeySize = 256, BlockSize = 128, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 };
    }

Suvendu Shekhar Giri

Где код C#, который вы пробовали?
Какие результаты вы получаете?
Каковы ожидаемые результаты?
Каковы входные данные?

Anil Sharma1983

я попытался генрировать ключ
public byte[] GenerateKey()
{

использование (var aes = CreateAes256Algorithm())
{

АЭС.GenerateKey();
вернуться АЭС.Ключ;
}
}

частный RijndaelManaged CreateAes256Algorithm()
{
return new RijndaelManaged { KeySize = 256, BlockSize = 128, Mode = CipherMode.ЕЦБ, обивка = PaddingMode.Pkcs7 в };
}

1 Ответов

Рейтинг:
1

#realJSOP

Вы могли бы использовать готовый инструмент:

6 лучших инструментов, которые помогут вам конвертировать Java в исходный код C# " CODECALL[^]

..или вы можете быть программистом и делать это вручную. На самом деле это не так уж и сложно. Большая часть Java даже использует некоторые из тех же имен классов. Единственное, что вам нужно будет иметь в виду, - это пространства имен и ключевые слова, специфичные для java, например final (как видно из вашего образца).

Кстати, вопрос о генерации ключей шифрования был задан день или три назад, и я опубликовал конкретный ответ на C#, который на самом деле содержал код. Вам бы лучше поискать его и забыть эту яванскую чепуху.