本文整理汇总了Java中org.apache.poi.poifs.crypt.EncryptionInfo类的典型用法代码示例。如果您正苦于以下问题:Java EncryptionInfo类的具体用法?Java EncryptionInfo怎么用?Java EncryptionInfo使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
EncryptionInfo类属于org.apache.poi.poifs.crypt包,在下文中一共展示了EncryptionInfo类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: decrypt
import org.apache.poi.poifs.crypt.EncryptionInfo; //导入依赖的package包/类
public static XSSFWorkbook decrypt(InputStream input, String password)
throws IOException {
POIFSFileSystem filesystem = new POIFSFileSystem(input);
EncryptionInfo info = new EncryptionInfo(filesystem);
Decryptor d = Decryptor.getInstance(info);
try {
if (!d.verifyPassword(password)) {
throw new RuntimeException(
"Unable to process: document is encrypted");
}
InputStream dataStream = d.getDataStream(filesystem);
// parse dataStream
return new XSSFWorkbook(dataStream);
} catch (GeneralSecurityException ex) {
throw new RuntimeException("Unable to process encrypted document",
ex);
}
}
示例2: convertEncryptedXlsx2DecryptedXlsx
import org.apache.poi.poifs.crypt.EncryptionInfo; //导入依赖的package包/类
public static InputStream convertEncryptedXlsx2DecryptedXlsx(InputStream is)
throws IOException {
POIFSFileSystem fs = new POIFSFileSystem(is);
EncryptionInfo info = new EncryptionInfo(fs);
Decryptor d = Decryptor.getInstance(info);
try {
d.verifyPassword(Decryptor.DEFAULT_PASSWORD);
InputStream dataStream = d.getDataStream(fs);
return dataStream;
} catch (GeneralSecurityException e) {
throw new IOException(e);
}
}
示例3: signEncryptedPackage
import org.apache.poi.poifs.crypt.EncryptionInfo; //导入依赖的package包/类
private void signEncryptedPackage(InputStream tmpFileInputStream, SignatureConfig sc, String password) throws IOException, InvalidFormatException, FormatNotUnderstoodException, XMLSignatureException, MarshalException {
NPOIFSFileSystem poifsTemp = new NPOIFSFileSystem(tmpFileInputStream);
EncryptionInfo info = new EncryptionInfo(poifsTemp);
Decryptor d = Decryptor.getInstance(info);
try {
if (!d.verifyPassword(password)) {
throw new FormatNotUnderstoodException("Error: Cannot decrypt new Excel file (.xlsx) for signing. Invalid password");
}
// signing
OPCPackage pkg = OPCPackage.open(d.getDataStream(poifsTemp));
sc.setOpcPackage(pkg);
SignatureInfo si = new SignatureInfo();
si.setSignatureConfig(sc);
si.confirmSignature();
// encrypt again
Encryptor enc = info.getEncryptor();
enc.confirmPassword(password);
NPOIFSFileSystem poifs = new NPOIFSFileSystem();
OutputStream os = enc.getDataStream(poifs);
pkg.save(os);
pkg.close();
if (os!=null) {
os.close();
}
poifs.writeFilesystem(this.finalOutputStream);
if (poifs!=null) {
poifs.close();
}
if (poifsTemp!=null) {
poifsTemp.close();
}
} catch (GeneralSecurityException e) {
LOG.error(e);
throw new FormatNotUnderstoodException("Error: Cannot decrypt new Excel file (.xlsx) for signing.");
}
}
示例4: finalizeWriteEncryptedXSSF
import org.apache.poi.poifs.crypt.EncryptionInfo; //导入依赖的package包/类
private void finalizeWriteEncryptedXSSF() throws IOException{
if (this.encryptAlgorithmCipher==null) {
LOG.error("No encryption algorithm specified");
return;
} else
if (this.hashAlgorithmCipher==null) {
LOG.error("No hash algorithm specified");
return;
} else
if (this.encryptionModeCipher==null) {
LOG.error("No encryption mode specified");
return;
} else
if (this.chainModeCipher==null) {
LOG.error("No chain mode specified");
return;
}
OutputStream os = null;
try {
EncryptionInfo info = new EncryptionInfo(this.encryptionModeCipher, this.encryptAlgorithmCipher, this.hashAlgorithmCipher, -1, -1, this.chainModeCipher);
Encryptor enc = info.getEncryptor();
enc.confirmPassword(this.howc.getPassword());
try {
os = enc.getDataStream(ooxmlDocumentFileSystem);
if (os!=null) {
this.currentWorkbook.write(os);
}
} catch (GeneralSecurityException e) {
LOG.error(e);
}
OutputStream theOS=this.oStream;
if (this.signUtil!=null) {
theOS= this.signUtil.getTempOutputStream();
}
ooxmlDocumentFileSystem.writeFilesystem(theOS);
} finally {
if ((this.oStream!=null) && (this.signUtil==null)) { // if we need to sign it we close it later after signing
this.oStream.close();
}
}
}