Расшифровка файла .XML с использованием закрытого ключа RSAJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Расшифровка файла .XML с использованием закрытого ключа RSA

Сообщение Anonymous »

Я создаю сценарий для расшифровки зашифрованного файла .XML. У меня есть как открытый, так и закрытый ключи, и я использую закрытый ключ для расшифровки. У меня есть зашифрованный текст, и я хочу преобразовать его в обычный текст.

Код: Выделить всё

import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.Base64;

public class Cipher {
private static final byte[] pub = Base64.getDecoder().decode("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCCMU67g985laZbW42c9MBX9zV6OBZMM1c/PyBQSdQfG+dMsQpwhxwkIYpmChZeU7VUewQMwqIh+Y3KKz32npMgMUbqNS+8X1aAPqqDIL66vXXpj+VR/8P4bTSz3Qd1tl3UUqFaqOvBbOXOcpXThnOF5TR95O0xxhWoDElb5UhpmwIDAQAB");
private static final byte[] pri = Base64.getDecoder().decode("MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIIxTruD3zmVpltbjZz0wFf3NXo4FkwzVz8/IFBJ1B8b50yxCnCHHCQhimYKFl5TtVR7BAzCoiH5jcorPfaekyAxRuo1L7xfVoA+qoMgvrq9demP5VH/w/htNLPdB3W2XdRSoVqo68Fs5c5yldOGc4XlNH3k7THGFagMSVvlSGmbAgMBAAECgYAtJnxve2RGzCdNN4r9C8RIvWrGX/0boBJ51KKYNYJi54Jnjl5YeALCZP9iM81eGRmhmqfk5PrlXW5W1ng+tu++k08wEwlGdBcE4TlFC+BdwSMiplarsrDbVAOcAaOuv0KgZKu5iqb0dgHW1+fKo/Xb+c1X6AG6sTNGd49X1feFgQJBAMXXOY2wind1gKXEdK8LvMXdq6JJi9dFxC6DlWytcW8UR1gKA369lyvL7s6zEhq+sNL05bXJbzJ4PWTtnY2nO1kCQQCodyGJNHpLBwN4HqoYP/6UvCcdK9XpdJWwJrYIjKdXwwWNg0QrhsCXLKbaDoUYcJ7UVB6/NKuQ2Cvn5rLWsNITAkEAjkDSFkpRVdH8XbUjvVWwN4nLRpahYXm9tUBR6eHQhXFMV0Zj+vaxwwEQxjlGFEr288i5fvvG48BHTNH6DoeniQJAWGFXeLHNTrs5OLVtqxc3qjQjmQw8RyPgu+8zJL0VtdccfKdXBjbFpwnH5zIi5TWAPgh7sPgi4fRm5FyFilhtfQJAMP3aMAcRjowXmreQqvVSCBQ2DIhxCAdibRFb1tBZP+wMNK56ghxVJyyozFHKGRxAhQdyaS3dFpXroTHD2pISIQ==");

public static String decrypt(String encryptedText) {
try {
PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(pri);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PrivateKey privateKey = keyFactory.generatePrivate(pkcs8KeySpec);
javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(javax.crypto.Cipher.DECRYPT_MODE, privateKey);
return new String(cipher.doFinal(Base64.getDecoder().decode(encryptedText)));
} catch (Exception e) {
e.printStackTrace();
return "Failed";
}
}

public static void main(String[] args) {
String encryptedText = loadFullContentFromFile("encrypted.xml");
if (encryptedText != null) {
System.out.println("Encrypted: " + encryptedText);
System.out.println("Decrypted: " + Cipher.decrypt(encryptedText));
} else {
System.out.println("Failed to read the encrypted content from file.");
}
}

private static String loadFullContentFromFile(String fileName) {
StringBuilder content = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = reader.readLine()) != null) {
content.append(line);
}
} catch (IOException e) {
e.printStackTrace();
return null;
}
return content.toString();
}
}
Я не совсем уверен, что еще мне может понадобиться для его успешной расшифровки. Возможно, я что-то упускаю из виду? У меня также есть файлы .jar, содержащие классы шифрования/дешифрования, но я не уверен, предназначены ли они для использования с этими файлами .xml. Буду благодарен за любую помощь!
Мой контент в формате .XML выглядит так:
ßn
lf.O ¸Ñ¬Eq sNMF[\ØùÚO“€¥¨fÁd÷X,ÀÇœ˘∑yì"ËîºÖÿaøòíÖÇr3°aˆ
5dé!ˆç]Èú:@ÏÚÈ\¬åò#£¢Úûm ∞ÖÎ CÉ>)Iû\À€πÉmÑ+ÊôÃ}........ и т.д.
Затем закодировал в формат base64 и получил следующее:

Код: Выделить всё

w59uCgxsZi5PwrjDkcKsRXEgA3NOTUYWW1wbw5jDucOaT+KAnOKCrMKlwqhmw4Fkw7dYLMOAw4fFk8uY4oiRecOsIgLDi8OuwrrDlsO/YcO4w7LDrcOWw4dyMx3CsGHLhgo1ZMOpFCHLhsOnf13DiMO6OkDDjxTDmhDDiFzCrMOlw7IaI8KjwqLDmsO7beKInsOWw44JQ8OJPilJw7tcw4DigqzPgMOJbRbDkSsFw4rDtMODfR4X4omkRkPDmMOqIxslDsOoQVHDjSVVV8uYfVkmHHXCr8OLEyvigJNf76yCA8uGeDsKQc6p76yBwqjihKI94oSiIwg3H8uH4oSiN8Ou4omkwrbiiI/Dj8OYwqDiiaRKVkniiJHDq0TCqsKow5Rpwqdc4oCdH+KAmCjiiJpOw6DDsj3LncOiy5rigKHigJzCsD1pw6rDps6pDMKhHEjDn8OlTsK4IkLFksuHw6Qh4oml4oCUL8Oq4oC5H0JIP3DCpTxew4PDoDHDusO4xZPCtBrCrOKApjfDt+KJoHB0Vgdgw5HDluKAnW7igLkTw4xNw47iiJrDoeKIj8K64omgasODaMO8VlVndTUeTHbigLrCt+KIhgFgRkcUXDPDi1DDucKodyYVFHEhHEviiILDjHRsy4ZoasO2Vz0PTsOkGCkZbsO/LwJvwqNk4oCicCjDpjF1w7vCsUzigqxNS8KoMinCuA8s76yBy5tJ4oC5JMuby4ZXMyjDjcucVsOLwr82wq84MD/Dk8OKw5MoxpLiiKvigJgjOcOS4oC64oCY4oiCy5nvrIFkTl5nw654w4DCpUcP4oiRy4bDrcOqIgw9w6figqzDjiE1O8OPbcORVEPDtTnLmQxoCSsXw7JbX8KvTT01PANnYhwIXsK1UQJGFcONwrbiiaR6wqzDhWzDuXriiJ7OqUc+4omIy5rDpw7DsQDCp8KrS+KEojF+OMOGQcKv4peKfOKAuuKJoG/DtMudw6rCocKoxLHDrzrFk8O64oiPw7PCtsOm4peKwqo4w40MwrVdwqzigJg=
Запускаем скрипт и получаем эту ошибку:

Код: Выделить всё

javax.crypto.IllegalBlockSizeException: Data must not be longer than 128 bytes
at com.sun.crypto.provider.RSACipher.doFinal(RSACipher.java:349)
at com.sun.crypto.provider.RSACipher.engineDoFinal(RSACipher.java:423)
at javax.crypto.Cipher.doFinal(Cipher.java:2168)
at Cipher.decrypt(Cipher.java:37)
at Cipher.main(Cipher.java:48)
Что еще я сделал?
  • Пытался найти ключ AES, как асимметричное шифрование, но безуспешно< /li>
    Пытался просмотреть файлы .jar, но не смог найти окончательную логику для расшифровки.
Я не уверен, какие шаги необходимы для выполнения расшифровки.

Подробнее здесь: https://stackoverflow.com/questions/791 ... rivate-key
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Расшифровка файла .XML с использованием закрытого ключа RSA
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Расшифровка файла .XML с использованием закрытого ключа RSA
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Расшифровка строки с помощью закрытого ключа (размер ключа RSA 2048)
    Anonymous » » в форуме Php
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Расшифровка строки с помощью закрытого ключа (размер ключа RSA 2048)
    Anonymous » » в форуме Php
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Шифрование Python RSA – использование закрытого ключа для шифрования и открытого ключа для расшифровки
    Anonymous » » в форуме Python
    0 Ответы
    166 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»