Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法获取XSSFSheet哈希密码?_Java_Excel_Apache Poi_Xlsx - Fatal编程技术网

Java 有没有办法获取XSSFSheet哈希密码?

Java 有没有办法获取XSSFSheet哈希密码?,java,excel,apache-poi,xlsx,Java,Excel,Apache Poi,Xlsx,有人知道为什么XSSFSheets不提供一种获取密码的方法,就像HSSFSheet使用一样。问题是,为什么需要不安全的短两个字节的“密码哈希” 但是: 问题是为什么需要不安全的短两个字节的“密码哈希” 但是: import org.apache.poi.ss.usermodel.*; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.xssf.usermodel.*; public class ExcelHSSFXSSF

有人知道为什么XSSFSheets不提供一种获取密码的方法,就像HSSFSheet使用

一样。问题是,为什么需要不安全的短两个字节的“密码哈希”

但是:


问题是为什么需要不安全的短两个字节的“密码哈希”

但是:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.xssf.usermodel.*;

public class ExcelHSSFXSSFProtectedSheetPassword {

 public static void main(String[] args) throws Exception {

  Workbook hssfworkbook = new HSSFWorkbook();

  Sheet sheet = hssfworkbook.createSheet();
  sheet.protectSheet("passwordExcel"); 

  short pwdHash = ((HSSFSheet)sheet).getPassword(); 
System.out.println(pwdHash);

  hssfworkbook.close();


  Workbook xssfworkbook = new XSSFWorkbook();

  sheet = xssfworkbook.createSheet();
  sheet.protectSheet("passwordExcel"); 

  byte[] pwdBytes = ((XSSFSheet)sheet).getCTWorksheet().getSheetProtection().getPassword();
  pwdHash = java.nio.ByteBuffer.wrap(pwdBytes).order(java.nio.ByteOrder.BIG_ENDIAN).getShort();
System.out.println(pwdHash);

  xssfworkbook.close();

 }

}