Проблема с шифрованием RSA - PullRequest
0 голосов
/ 15 марта 2011

По сути, я пытаюсь зашифровать поток данных между клиентом Java и сервером c #. Прежде чем приступить к работе над многоплатформенным шифрованием, я пытаюсь создать простое приложение для шифрования, но я застрял в самом начале.

У меня есть следующий простой код:

String text = "hello";
        KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
        kpg.initialize(2048);
        KeyPair kp = kpg.genKeyPair();
        Key publicKey = kp.getPublic();
        Key privateKey = kp.getPrivate();

        Cipher cipher = Cipher.getInstance("RSA/ECB/NoPadding");
        cipher.init(Cipher.ENCRYPT_MODE, publicKey);
        byte[] cipherData = cipher.doFinal(text.getBytes());

        cipher = Cipher.getInstance("RSA/ECB/NoPadding");
        cipher.init(Cipher.DECRYPT_MODE, privateKey);
        byte[] textData = cipher.doFinal(text.getBytes());

        String decrypted = new String(textData);
        System.out.println(decrypted);

Никаких исключений не выдается, но я не получаю оригинальный текст "привет" после расшифровки. Есть идеи? 10х много

1 Ответ

2 голосов
/ 15 марта 2011

Это выглядит подозрительно:

byte[] textData = cipher.doFinal(text.getBytes());

Вы имели в виду:

byte[] textData = cipher.doFinal(cipherData);
...