public void szyfrujPlik(BigInteger e, BigInteger n, String sciezkaDoPlikuOdczyt) { String sciezkaPlikZapis = "resource\\zaszyfrowany" + sciezkaDoPlikuOdczyt.substring(sciezkaDoPlikuOdczyt.indexOf('.')); PlikiOdczytZapis plikiOdczytZapis = new PlikiOdczytZapis(sciezkaDoPlikuOdczyt, sciezkaPlikZapis, false); byte[] zPliku = plikiOdczytZapis.odczyt((int) new File(sciezkaDoPlikuOdczyt).length()); int liczbaZnakow = n.bitLength() / 8; byte[] pomoc = new byte[liczbaZnakow]; byte[] wynik; int j = 0; for (int i = 0; i < zPliku.length; i++) { if (j < liczbaZnakow) { pomoc[j] = zPliku[i]; j++; } else { j = 0; i--; wynik = (szyfrujRSA(new BigInteger(pomoc), e, n).toString() + ' ').getBytes(); plikiOdczytZapis.zapis(wynik); if (zPliku.length - i > liczbaZnakow) { pomoc = new byte[liczbaZnakow]; } else { pomoc = new byte[zPliku.length % liczbaZnakow]; } } } wynik = (szyfrujRSA(new BigInteger(pomoc), e, n).toString()).getBytes(); plikiOdczytZapis.zapis(wynik); }
public void deszyfrujPlik(BigInteger d, BigInteger n, String sciezkaDoPlikuOdczyt) { String sciezkaPlikZapis = "resource\\odszyfrowany" + sciezkaDoPlikuOdczyt.substring(sciezkaDoPlikuOdczyt.indexOf('.')); PlikiOdczytZapis plikiOdczytZapis = new PlikiOdczytZapis(sciezkaDoPlikuOdczyt, sciezkaPlikZapis, false); byte[] zPliku = plikiOdczytZapis.odczyt((int) new File(sciezkaDoPlikuOdczyt).length()); String[] odczytane = new String(zPliku).split(" "); for (String o : odczytane) { BigInteger wynik = deszyfrujRSA(new BigInteger(o), d, n); plikiOdczytZapis.zapis(wynik.toByteArray()); } }