[JAVA] [Hinweis] Wenden Sie mit NPOI einen Kennwortschutz auf Excel-Tabellen an

Was ich machen wollte

Ich musste Maßnahmen ergreifen, um leicht herauszufinden, ob Excel in einem bestimmten Fall manipuliert wurde. "Dann solltest du ein Passwort auf das Buch setzen!" Dachte ich und begann nachzuforschen.

Fazit

Ich fing an aufzuschauen, wusste aber nicht, wie ich ein Passwort in das Buch eintragen sollte. ** ** ** Ich weiß jedoch, wie ich das Blatt schützen kann, daher werde ich es als Erinnerung behalten.

Für Apache POI 4.1.2

Als ich versuchte, POI von Java aus zu verarbeiten, konnte ich sowohl Arbeitsblatt als auch Arbeitsmappe sperren.

filename.java


XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Sample");

WriteCell(sheet, 0, 0, "Hello"); //Referenzartikel: [C.#] Erstellen und bearbeiten Sie Excel-Dateien mit NPOI

//Arbeitsblattschutz
sheet.protectSheet("password");

//Arbeitsmappenschutz
workbook.lockStructure();
workbook.setWorkbookPassword("password", HashAlgorithm.sha256);

//Arbeitsmappe exportieren
var out = new FileOutputStream("C:\\hogehoge.xlsx");
workbook.write(out);
workbook.close();
out.close();

Als ich die generierte Excel-Datei "hogehoge.xlsx" öffnete, war sie mit Sicherheit gesperrt. image.png

Für NPOI 2.5.1.

Das Arbeitsblatt konnte sperren, fand jedoch keine Möglichkeit, die Arbeitsmappe zu sperren.

Beispielcode zum Schutz des Arbeitsblatts

Es ist fast das gleiche wie beim POI.

filename.cs


var workbook = new XSSFWorkBook();
ISheet worksheet = workBook.CreateSheet("testSheet1");

worksheet.ProtectSheet("password");  //Legen Sie das Blattkennwort fest
workbook.LockStructure();            //Schützen Sie die Struktur Ihrer Arbeitsmappe(Es ist jedoch kein Passwort erforderlich)

string srcFileName = @"C:\hogehoge.xlsx";
FileStream stream = (File.Exists(srcFileName))
      ? File.OpenWrite(srcFileName)
      : File.Create(srcFileName)
);
workbook.Write(stream);

Aufgabe

Es sollte beachtet werden, dass solange es Software gibt, die den Schutz der Arbeitsmappe in erster Linie aufhebt, selbst wenn ein Kennwortschutz durchgeführt werden kann, Manipulationen nicht vollständig verhindert werden können. Es sollte als einfacher Schutz betrachtet werden.

Referenzierte Artikel und Materialien

Verlauf bearbeiten

(2020.06.20) Ich habe über die Verschlüsselung mit FileInfo geschrieben, sie jedoch gelöscht, da die Informationen überprüft werden müssen.

Recommended Posts

[Hinweis] Wenden Sie mit NPOI einen Kennwortschutz auf Excel-Tabellen an
[Java] Mit Arrays.asList () zu beachtende Punkte
[Hinweis] Erste Schritte mit Rspec