Пример #1
0
  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);
  }
Пример #2
0
  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());
    }
  }