2016-06-29 43 views
-1

私はAESアルゴリズム128ビットキーを実装しています。暗号化の後、暗号化されたデータの最初の16バイトは.docxファイルに格納されます。その後、.docxファイルはブロックされます。Apache poiを使用してWord文書にデータを書き込みますか?

XWPFDocument document = new XWPFDocument() ; 
FileOutputStream out = new FileOutputStream(filename,true);//filename is .docx word document 
XWPFParagraph paragraph = document.createParagraph(); 
XWPFRun run = paragraph.createRun(); 
run.setText(ress1);//ress1 is a String datatype 
document.write(out); 
+1

「ブロック済み」とはどういう意味ですか?あなたはどんな正確な問題に直面していますか? –

+0

.docxファイルを開いたときに表示されます。オフィスの開いているXMLファイルを開くことができませんでした。内容に問題があります。次のように表示されます。Wordは単語doucument.Doocument.Doの内容を回復しますか? – kalyan

+0

最初の16バイトのデータが保存され、残りのデータが保存されていないことをどう考えましたか?また、暗号化されたデータをワードファイルに保存する理由について少し不思議です。あなたのファイルをパスワードで保護しようとしていますか? –

答えて

1

あなたのコメントから理解しているとおり、あなたはワードファイルを暗号化したいと思っています。次のコードスニペットを使用してそれを達成できます。

POIFSFileSystem fs = new POIFSFileSystem(); 
EncryptionInfo info = new EncryptionInfo(fs, EncryptionMode.agile); 

Encryptor enc = info.getEncryptor(); 
enc.confirmPassword(<your_password>); 


OPCPackage opc = OPCPackage.open(new File(<file_path>), PackageAccess.READ_WRITE); //opening package for encryption 
OutputStream os = enc.getDataStream(fs); //perform encryption 
opc.save(os); //save package 
opc.close(); 

FileOutputStream fos = new FileOutputStream("file_path"); 
fs.writeFilesystem(fos); //write the file back to file system 
fos.close(); 
+0

上記の行を追加しましたが、変更はありません。 – kalyan

+0

たとえば、最初のStringはdc3ae4d253f5620ec05848ff8847696dです。この文字列は.docxファイルに格納されていましたが、多くの文字列が生成されています。しかし、word文書は最初の文字列にこれらの文字列を追加しませんでした。最初の文字列は.docxファイルに格納されていました。 – kalyan

+0

@pavaniがあなたの問題を解決しましたか? –

関連する問題