久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

用Java驗證pdf文件的電子章簽名

瀏覽:86日期:2022-08-19 09:07:24
pom.xml

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <groupId>com.yalong</groupId> <artifactId>verifyPdf</artifactId> <version>1.0-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> <lombok.version>1.18.10</lombok.version> </properties> <dependencies> <!-- <dependency>--> <!-- <groupId> e-iceblue </groupId>--> <!-- <artifactId>spire.pdf</artifactId>--> <!-- <version>3.4.2</version>--> <!-- </dependency>--> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf.free</artifactId> <version>2.6.3</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.0.1</version> </dependency> <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </dependency> </dependencies> <repositories> <repository> <id>com.e-iceblue</id> <url>http://repo.e-iceblue.cn/repository/maven-public/</url> </repository> </repositories></project>VerifySignature.java

import com.spire.pdf.PdfDocument;import com.spire.pdf.security.PdfCertificate;import com.spire.pdf.security.PdfSignature;import com.spire.pdf.widget.PdfFormFieldWidgetCollection;import com.spire.pdf.widget.PdfFormWidget;import com.spire.pdf.widget.PdfSignatureFieldWidget;import lombok.Data;import lombok.ToString;import org.apache.poi.ss.usermodel.*;import org.apache.poi.ss.usermodel.Font;import org.apache.poi.xssf.streaming.SXSSFWorkbook;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.Serializable;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.HashSet;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;import javax.swing.*;import java.awt.*;@Data@ToStringclass ExcelDataVO implements Serializable { private String fileName; private String signDate; private String validBefore; private String validAfter; private String subject; private String serialNumber; private Boolean isEffective = false;}class ExcelWriter { //表頭 private static final List<String> CELL_HEADS; static { // 類裝載時就載入指定好的表頭信息,如有需要,可以考慮做成動態生成的表頭 CELL_HEADS = new ArrayList<>(); CELL_HEADS.add('文件名'); CELL_HEADS.add('簽名時間'); CELL_HEADS.add('有效期'); CELL_HEADS.add('有效期'); CELL_HEADS.add('簽名機構'); CELL_HEADS.add('序列號'); CELL_HEADS.add('是否通過驗簽'); } /** * 生成Excel并寫入數據信息 * * @param dataList 數據列表 * @return 寫入數據后的工作簿對象 */ public static Workbook exportData(List<ExcelDataVO> dataList) { // 生成xlsx的Excel Workbook workbook = new SXSSFWorkbook(); // 如需生成xls的Excel,請使用下面的工作簿對象,注意后續輸出時文件后綴名也需更改為xls //Workbook workbook = new HSSFWorkbook(); // 生成Sheet表,寫入第一行的表頭 Sheet sheet = buildDataSheet(workbook); //構建每行的數據內容 int rowNum = 1; for (ExcelDataVO data : dataList) { if (data == null) {continue; } //輸出行數據 Row row = sheet.createRow(rowNum++); convertDataToRow(workbook, data, row); } return workbook; } /** * 生成sheet表,并寫入第一行數據(表頭) * * @param workbook 工作簿對象 * @return 已經寫入表頭的Sheet */ private static Sheet buildDataSheet(Workbook workbook) { Sheet sheet = workbook.createSheet(); // 設置表頭寬度 for (int i = 0; i < CELL_HEADS.size(); i++) { sheet.setColumnWidth(i, 4000); } // 設置默認行高 sheet.setDefaultRowHeight((short) 400); // 構建頭單元格樣式 CellStyle cellStyle = buildHeadCellStyle(sheet.getWorkbook()); // 寫入第一行各列的數據 Row head = sheet.createRow(0); for (int i = 0; i < CELL_HEADS.size(); i++) { Cell cell = head.createCell(i); cell.setCellValue(CELL_HEADS.get(i)); cell.setCellStyle(cellStyle); } return sheet; } /** * 設置第一行表頭的樣式 * * @param workbook 工作簿對象 * @return 單元格樣式對象 */ private static CellStyle buildHeadCellStyle(Workbook workbook) { CellStyle style = workbook.createCellStyle(); //對齊方式設置 style.setAlignment(HorizontalAlignment.CENTER); //邊框顏色和寬度設置 style.setBorderBottom(BorderStyle.THIN); style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); // 下邊框 style.setBorderLeft(BorderStyle.THIN); style.setLeftBorderColor(IndexedColors.BLACK.getIndex()); // 左邊框 style.setBorderRight(BorderStyle.THIN); style.setRightBorderColor(IndexedColors.BLACK.getIndex()); // 右邊框 style.setBorderTop(BorderStyle.THIN); style.setTopBorderColor(IndexedColors.BLACK.getIndex()); // 上邊框 //設置背景顏色 style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); style.setFillPattern(FillPatternType.SOLID_FOREGROUND); //粗體字設置 Font font = workbook.createFont(); font.setBold(true); style.setFont(font); return style; } /** * 將數據轉換成行 * * @param data 源數據 * @param row 行對象 */ private static void convertDataToRow(Workbook workbook, ExcelDataVO data, Row row) { int cellNum = 0; Cell cell; //對特殊數值設置顏色 CellStyle cellStyle = workbook.createCellStyle(); //字體設置 Font font = workbook.createFont(); font.setBold(true); font.setColor(IndexedColors.GREEN.getIndex()); cellStyle.setFont(font); // 文件名 cell = row.createCell(cellNum++); cell.setCellValue(data.getFileName()); // 簽名時間 cell = row.createCell(cellNum++); cell.setCellValue(null == data.getSignDate() ? '' : data.getSignDate()); // 有效期 cell = row.createCell(cellNum++); cell.setCellValue(null == data.getValidBefore() ? '' : data.getValidBefore()); // 有效期 cell = row.createCell(cellNum++); cell.setCellValue(null == data.getValidAfter() ? '' : data.getValidAfter()); //主題 cell = row.createCell(cellNum++); cell.setCellValue(null == data.getSubject() ? '' : data.getSubject()); //序列號 cell = row.createCell(cellNum++); cell.setCellValue(null == data.getSerialNumber() ? '' : data.getSerialNumber()); //是否通過驗簽 cell = row.createCell(cellNum); if (data.getIsEffective()) { cell.setCellValue('簽名有效'); } else { cell.setCellValue('簽名無效'); cell.setCellStyle(cellStyle); } } public static void writeExcel(List<ExcelDataVO> dataVOList, String exportFilePath) { // 寫入數據到工作簿對象內 Workbook workbook = ExcelWriter.exportData(dataVOList); // 以文件的形式輸出工作簿對象 FileOutputStream fileOut = null; try { File exportFile = new File(exportFilePath); if (!exportFile.exists()) {boolean newFile = exportFile.createNewFile();if (!newFile) { System.out.println('文件創建失敗');} } fileOut = new FileOutputStream(exportFilePath); workbook.write(fileOut); fileOut.flush(); } catch (Exception e) { System.out.println('輸出Excel時發生錯誤,錯誤原因:' + e.getMessage()); } finally { try {if (null != fileOut) { fileOut.close();}workbook.close(); } catch (IOException e) {System.out.println('關閉輸出流時發生錯誤,錯誤原因:' + e.getMessage()); } } }}public class VerifySignature { private static String fromDirPath; private static String toFilePath; public static void main(String[] args) { final JFrame jf = new JFrame('測試窗口'); jf.setSize(400, 250); jf.setLocationRelativeTo(null); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); JPanel panel = new JPanel(); // 創建文本區域, 用于顯示相關信息 final JTextArea msgTextArea = new JTextArea(10, 30); msgTextArea.setLineWrap(true); panel.add(msgTextArea); JButton openBtn = new JButton('選擇文件路徑'); openBtn.addActionListener(e -> showFileOpenDialog(jf, msgTextArea)); panel.add(openBtn); JButton saveBtn = new JButton('結果保存位置'); saveBtn.addActionListener(e -> showFileSaveDialog(jf, msgTextArea)); panel.add(saveBtn); jf.setContentPane(panel); jf.setVisible(true); JButton enSureBtn = new JButton('確認'); enSureBtn.addActionListener(e -> enSureListener(jf)); panel.add(enSureBtn); jf.setContentPane(panel); jf.setVisible(true); } /* * 打開文件 */ private static void showFileOpenDialog(Component parent, JTextArea msgTextArea) { // 創建一個默認的文件選取器 JFileChooser fileChooser = new JFileChooser(); // 設置默認顯示的文件夾為當前文件夾 fileChooser.setCurrentDirectory(new File('.')); // 設置文件選擇的模式(只選文件、只選文件夾、文件和文件均可選) fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); // 設置是否允許多選 fileChooser.setMultiSelectionEnabled(false);// // 添加可用的文件過濾器(FileNameExtensionFilter 的第一個參數是描述, 后面是需要過濾的文件擴展名 可變參數)// fileChooser.addChoosableFileFilter(new FileNameExtensionFilter('zip(*.zip, *.rar)', 'zip', 'rar'));//// // 設置默認使用的文件過濾器// fileChooser.setFileFilter(new FileNameExtensionFilter('image(*.jpg, *.png, *.gif)', 'jpg', 'png', 'gif')); // 打開文件選擇框(線程將被阻塞, 直到選擇框被關閉) int result = fileChooser.showOpenDialog(parent); if (result == JFileChooser.APPROVE_OPTION) { // 如果點擊了'確定', 則獲取選擇的文件路徑 File file = fileChooser.getSelectedFile(); fromDirPath = file.getAbsolutePath(); msgTextArea.append('選擇源文件: ' + fromDirPath + 'nn'); } } /* * 選擇文件保存路徑 */ private static void showFileSaveDialog(Component parent, JTextArea msgTextArea) { // 創建一個默認的文件選取器 JFileChooser fileChooser = new JFileChooser(); //把時間戳經過處理得到期望格式的時間 Date date = new Date(); SimpleDateFormat format0 = new SimpleDateFormat('yyyyMMddHHmmss'); String now = format0.format(date.getTime()); // 設置打開文件選擇框后默認輸入的文件名 fileChooser.setSelectedFile(new File(now + '.xlsx')); // 打開文件選擇框(線程將被阻塞, 直到選擇框被關閉) int result = fileChooser.showSaveDialog(parent); if (result == JFileChooser.APPROVE_OPTION) { // 如果點擊了'保存', 則獲取選擇的保存路徑 File file = fileChooser.getSelectedFile(); toFilePath = file.getAbsolutePath(); msgTextArea.append('結果文件路徑: ' + toFilePath + 'nn'); } } //找到需要的內容 public final static Pattern pattern = Pattern.compile('[Subject].*?O=(.*?),.*?[Issuer](.*?)[Serial Number](.*?)[Not Before](.*?)[Not After](.*?)[Thumbprint](.*?)'); // 剔除特殊字符 public final static Pattern replacePattern = Pattern.compile('t|r|n'); /** * 查找某個路徑下的所有pdf文件 * * @return 所有的pdf絕對路徑 */ public static HashSet<String> listDir(String path) { HashSet<String> FileNameString = new HashSet<String>(); File file = new File(path); //獲取其file對象 File[] fs = file.listFiles(); //遍歷path下的文件和目錄,放在File數組中 if (fs == null) { System.out.println(path + '路徑下沒有文件'); return null; } //遍歷File[]數組 for (File f : fs) { String fileName = String.valueOf(f); if (!f.isDirectory() && fileName.toLowerCase().endsWith('.pdf')) //若非目錄(即文件),則打印FileNameString.add(fileName); } return FileNameString; } /** * 檢驗pdf文件是否簽名 * * @param filePath pdf文件絕對路徑 */ public static ExcelDataVO checkPdf(String filePath) { //創建PdfDocument實例 PdfDocument doc = new PdfDocument(); //創建結果集 ExcelDataVO excelDataVO = new ExcelDataVO(); //文件名,注意windows下應該是,linux下是/ String fileName = filePath.substring(filePath.lastIndexOf('') + 1); excelDataVO.setFileName(fileName); //加載含有簽名的PDF文件 doc.loadFromFile(filePath); //獲取域集合 PdfFormWidget pdfFormWidget = (PdfFormWidget) doc.getForm(); PdfFormFieldWidgetCollection pdfFormFieldWidgetCollection = pdfFormWidget.getFieldsWidget();// int countCollection = pdfFormFieldWidgetCollection.getCount();// System.out.println('共發現' + countCollection + '個域'); //遍歷域 for (int i = 0; i < pdfFormFieldWidgetCollection.getCount(); i++) { //判定是否為簽名域 if (pdfFormFieldWidgetCollection.get(i) instanceof PdfSignatureFieldWidget) {//獲取簽名域PdfSignatureFieldWidget signatureFieldWidget = (PdfSignatureFieldWidget) pdfFormFieldWidgetCollection.get(i);//獲取簽名時間PdfSignature signature = signatureFieldWidget.getSignature();excelDataVO.setSignDate(String.valueOf(signature.getDate()));//獲取簽名的內容PdfCertificate certificate = signature.getCertificate();// System.out.println('Issuer:' + certificate.getIssuer());//System.out.println('Subject:' + certificate.getSubject());//System.out.println('---------');//excelDataVO.setSubject(String.valueOf(certificate.getSubject()));String certificateString = certificate.toString();Matcher m = replacePattern.matcher(certificateString);certificateString = m.replaceAll('');Matcher matcher = pattern.matcher(certificateString);while (matcher.find()) {// String group = matcher.group(0); String subject = matcher.group(1);// String issuer = matcher.group(2); String serialNumber = matcher.group(3); String before = matcher.group(4); String after = matcher.group(5);// String sha1 = matcher.group(6); excelDataVO.setSubject(subject); excelDataVO.setSerialNumber(serialNumber); excelDataVO.setValidBefore(before); excelDataVO.setValidAfter(after);}//判定簽名是否有效boolean result = signature.verifySignature();excelDataVO.setIsEffective(result);if (result) { return excelDataVO;} } } return excelDataVO; } /* * 開始執行業務邏輯 */ private static void enSureListener(JFrame parent) { parent.dispose(); System.out.println('開始驗簽...'); //從某個路徑下獲取所有的pdf文件路徑 HashSet<String> filePaths = listDir(fromDirPath); if (filePaths == null) { return; } List<ExcelDataVO> excelDataVOS = new ArrayList<>(); for (String filePath : filePaths) { ExcelDataVO excelDataVO = checkPdf(filePath); excelDataVOS.add(excelDataVO); } ExcelWriter.writeExcel(excelDataVOS, toFilePath); System.out.println('驗簽完成...'); }}

以上就是用Java驗證pdf文件的電子章簽名的詳細內容,更多關于Java驗證pdf文件的電子章簽名的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 可以免费看黄的网站 | 日韩在线免费 | 亚洲成人一区 | 欧美精品二区 | 日本综合久久 | 国产精品国产精品国产专区不卡 | 羞羞的视频在线 | 91在线区 | 欧美精品久久久久久久久 | 日本 欧美 三级 高清 视频 | 国产日韩欧美一区二区 | www.操操操.com| 久久久久久久香蕉 | 国产亚洲精品美女久久久久久久久久 | 免费观看的黄色 | 中文字幕一区二区三区不卡 | 99精品视频一区二区三区 | 成人网av| 午夜精品久久久久久久久久久久 | 国产精品一区二区三区四区 | 成人精品一区二区 | 在线观看你懂的视频 | 欧美激情在线狂野欧美精品 | 午夜免费 | 538在线精品| 美女视频一区 | 成人精品久久 | 欧美一区二区三区电影 | 天天干夜夜爽 | 久久亚洲精品中文字幕 | 精品日韩在线观看 | a级毛片免费高清视频 | 亚洲成人第一区 | 亚洲一区二区伦理 | 日韩污视频在线观看 | 日本久久久久久 | 91精品国产色综合久久 | 久久久久久亚洲精品视频 | 精品国产精品国产偷麻豆 | 欧美精品久久久 | 国产精品福利91 | 久久久精品网 | 一区二区三区免费在线观看 | 91婷婷射| 亚洲网站色| 91精品久久久久久久久久小网站 | 99久久免费精品国产男女性高好 | 精品国产免费久久久久久尖叫 | 久久91精品 | 欧美成人中文字幕 | 久久久天堂 | 福利在线看 | 一区二区视频网站 | 高清视频一区二区三区 | 永久精品| 91精品综合久久久久久五月天 | 色综合免费视频 | 精品日韩欧美一区二区在线播放 | 成人免费一区二区三区视频网站 | 国产一级片在线播放 | 亚洲国产成人精品女人久久久 | 姐姐在线观看动漫第二集免费 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 天天干一干 | 91精品综合久久久久久五月天 | 99精品在线观看 | 日韩精品一区二区三区在线观看 | 这里只有精品在线 | 欧美精品在线免费观看 | 黄色免费一级 | 日韩中文字幕三区 | www日韩| 亚洲成人免费在线 | 日本一区二区中文字幕 | 亚洲成人首页 | 久久国产精品视频 | 国产免费视频在线 | 日韩精品影院 | 久久91av| 91国内视频在线观看 | 三级日韩| 九九热精品在线 | 在线观看成人国产 | 在线视频国产一区 | 国产精品久久久久久中文字 | 国产一区二 | 日韩精品区 | 日韩电影在线一区 | av超碰| 久草免费在线 | 欧美精品片 | 成年人综合网 | 国产自在现线2019 | 久久综合久久综合久久 | 国产毛片在线看 | 最新国产精品 | 日韩 国产 在线 | 人人做人人澡人人爽欧美 | 中文字幕久久久 | 日韩欧美一级精品久久 | av在线一区二区 | 日韩欧美在线免费观看 | 国产激情一区二区三区 | 亚洲精品日韩精品 | 久久精品网| 欧美综合色 | 国产成人一区 | 成人视屏在线观看 | 欧美视频xxx | 精品九九久久 | 成人夜晚看av | 亚洲欧洲精品视频在线观看 | 视频一区二区三区中文字幕 | 久久九 | 日韩视频免费在线播放 | 日本精品在线 | 国产区在线 | 国产亚洲一区在线 | 久久久久久久久久一区二区 | 国产精品无码久久久久 | 一级全黄性色生活片 | 亚洲精品一区二区 | 亚洲大片69999 | 欧美视频精品在线观看 | 91九色国产视频 | 欧美一区2区三区4区公司二百 | 亚洲国产精品一区二区三区 | 99精品全国免费观看视频软件 | 97国产一区二区精品久久呦 | 久久99久久久久 | 欧美xxxⅹ性欧美大片 | 亚洲一区二区三区高清 | 免费v片在线观看 | 精品一区二区视频 | 天天操夜夜干 | 久久久久久久一区 | 午夜精品视频在线观看 | 日韩在线视频观看 | 亚洲福利社区 | 久久不卡日韩美女 | 99久久99久久精品国产片果冻 | 久久人人av | 日韩视频一区在线观看 | 视频一区二区国产 | 国产一区二区日韩 | 久久国产精品久久久久久 | 亚洲视频中文字幕 | 99久久久久久 | 奇米亚洲午夜久久精品 | 成人在线看片 | 欧美在线观看视频 | 91中文在线 | 天天干人人 | 9191在线| 1000部精品久久久久久久久 | www亚洲成人 | 一区二区三区四区在线 | 国产色在线 | 亚洲成人一 | 中文精品在线 | 精品久久久久久久久久久久 | 美女一区| 日韩区 | 亚洲视频综合 | 天久久| 毛片网站在线观看 | 久久久久av | 亚洲精品久久久久999中文字幕 | 天天人人精品 | 国产成人av一区 | 男女精品| 中文字幕精品一区二区三区精品 | 免费一区二区 | 美女一级 | 99re视频 | 一a级毛片| 国产一区二区三区免费视频 | 国产精品永久在线 | 国产精品久久视频 | 狠狠ri | 久久国产一区二区 | 精精国产xxxx视频在线 | 久草成人 | a级片在线观看 | 亚洲精品综合在线 | 91视频三区 | 99爱爱视频 | 国产精品国产成人国产三级 | 久久av网 | 中文字幕乱码一区二区三区 | 欧美色综合| 欧美成人a | av黄色在线| 国产精品99久久久久久动医院 | 亚洲国产高清视频 | 国产一区亚洲 | 伊人电影综合网 | 欧美全黄 | 国产妇女乱码一区二区三区 | 久久久久国产视频 | 欧美天堂 | 亚洲xxxx3d| 黄色片子视频 | 国产大片aaa| 一区| 精品一区二区三区免费毛片爱 | 一级a性色生活片久久毛片波多野 | 国产成人精品久久二区二区 | 国产精品美女久久久久久免费 | 日韩成人一级片 | 99久久这里只有精品 | 欧美日韩不卡在线 | 亚洲精品一区二区三区蜜桃久 | 国产区视频 | 国产精品久久久久久久久久免费看 | 国产日韩一区二区 | 成人1区2区 | 国产成人影院 | 日日摸日日碰夜夜爽不卡dvd | 草草网 | 亚洲精品乱码久久久久久蜜桃不爽 | 91在线电影| 国产一区二区在线免费观看 | 岛国一区 | 黄色成人影视 | 日本在线视频一区二区 | 嫩草研究院在线观看入口 | 欧美日韩亚洲二区 | 精品在线播放 | 成人av免费在线观看 | 国产av毛片 | 伊人精品在线 | 久久精品a一级国产免视看成人 | 成人精品视频99在线观看免费 | 日韩欧美在线观看视频 | 狠狠躁夜夜躁人人爽视频 | 国产高清美女一级a毛片久久 | 国产视频欧美 | 日韩久草 | 91亚洲视频在线观看 | 国产99久久久久久免费看农村 | 国产在线综合网 | 成人在线免费 | 亚洲一区二区三区 | 欧美14一18处毛片 | 国产视频一区二区三区四区 | 久久久精品一区二区三区 | 久久免费精品视频 | 伊人狠狠干 | 国产精品美女视频 | 欧美国产精品久久久 | 在线观看av片 | 亚洲欧美一区二区精品中文字幕 | 亚洲综人网 | 99精彩视频| a视频在线| 米奇狠狠操 | 午夜精品网站 | 久久午夜精品 | 91网站在线播放 | 久久久久久影院 | 人人爽在线观看 | 欧美一级毛片久久99精品蜜桃 | 欧美一级免费看 | 午夜影院免费观看视频 | 播放一级毛片 | 91国内精品久久 | 欧美日韩久久 | 国产精品一二三区 | 欧美极品一区二区三区 | a级性视频| 一区二区中文 | 天天干天天操天天舔 | 欧美日韩电影一区二区 | 免费毛片a线观看 | 在线国产一区二区 | 婷婷久久综合九色综合绿巨人 | 精品国产欧美 | 国产精品久久久久久久久久小说 | 亚洲一区二区免费视频 | 一区二区三区影院 | av电影手机在线看 | 国产一区二区视频免费 | 日韩免费在线 | 中国电影黄色一级片免费观看 | 国产精品九九久久99视频 | 午夜成年人 | 欧美视频在线免费 | 久久久精品一区 | 九一在线观看 | 亚洲欧美日韩在线 | 亚洲视频在线观看免费 | 亚色在线| 69久久99精品久久久久婷婷 | 欧美日韩福利视频 | 国产在线观看二区 | 欧美理伦片在线播放 | 欧美中文字幕在线观看 | 日韩欧美一区二区在线观看 | 九九热这里 | 亚洲一区二区三区精品视频 | 国产精品一区二区三区四区 | 欧美成人一区二区 | 久久爱综合 | 精品久久久成人 | 久久人人爽人人爽 | 成人在线观看一区 | 亚洲一区二区在线播放 | 国产xxx在线观看 | 久久国产精品一区二区三区 | 国产在线高清视频 | 久久国产一区二区 | 亚洲性片| 男人天堂视频在线观看 | 91在线免费看 | 精品日韩| 精品一区二区三区在线观看 | 成年人免费看 | 欧洲视频一区二区 | 一区二区三区免费在线观看 | 天堂成人国产精品一区 | 日韩精品在线免费观看 | 黄色大片观看 | 欧美一级毛片免费观看 | 国产一区国产二区在线观看 | 欧美性18 | 91精品国产综合久久福利 | 久久久久久久国产精品 | 欧美性猛交一区二区三区精品 | 久久成人午夜 | concern超碰在线 | 免费不卡视频 | 国产精品一区二区三 | 亚洲视频在线视频 | 91人人爽人人爽人人精88v | 欧美视频第一页 | 亚洲一区av | 一区二区精品 | 人人草天天草 | 久久精品首页 | 精品国产区 | 一区二区三区视频免费 | 亚洲一区二区在线播放 | 大陆毛片 | 精品少妇一区二区三区日产乱码 | 精品国产欧美一区二区三区成人 | 国产精品无码专区在线观看 | 国产在线一二 | 一级成人免费 | 成人一区二区三区在线观看 | av网站推荐 | 日韩视频网站在线观看 | 欧美不卡| 国产精品1区2区 | 久久久999精品视频 五月天婷婷在线视频 | 国产一区二区三区在线免费观看 | 欧美日韩视频在线第一区 | 精品视频一区二区三区四区 | 欧美日本韩国在线 | 午夜小影院 | 国产羞羞视频在线观看 | 精品中文字幕在线 | 婷婷网址 | 亚洲网站在线观看 | 亚洲欧美在线视频 | 国产一区二区视频在线观看 | 亚洲欧美日韩另类精品一区二区三区 | 日韩综合在线 | 久久国产精品久久 | 午夜在线电影 | 在线视频第一页 | 亚洲人免费视频 | 一区二区三区视频 | a网站在线观看 | 美女天堂av| 国产精品二区一区二区aⅴ污介绍 | 精品国产依人香蕉在线精品 | 久久久婷 | 超碰天天 | 亚洲欧美电影 | 华丽的挑战在线观看 | 日韩精品1区 | 欧美另类一区二区 | 日韩在线观看视频一区 | 99热这里有 | 少妇一级淫免费放 | 成人欧美一区二区三区黑人孕妇 | 精品www| 国产成人在线一区二区 | 一级毛片免费观看 | 免费黄色在线看 | 欧美aⅴ | 国产精品视频久久 | 天天天天爽| jlzzjlzz国产精品久久 | 国产美女啪啪 | 毛片网在线观看 | 国产精品视频一区二区免费不卡 | 中文字幕欧美在线 | 精品一二三区 | www.com欧美| 日韩欧美三区 | 99re视频在线| 亚洲欧美视频 | 国产1区2区精品 | 国产精品一区二区三区四区 | 亚洲一区在线视频 | 欧洲成人在线观看 | 欧美日韩免费在线 | 久久久一区二区三区 | 欧美精品二区中文乱码字幕高清 | 欧美日韩一区二区三区不卡视频 | 在线看91 | 国精品产品区三区 | 久草网站 | 久色成人 | 激情视频在线观看 | 在线视频一区二区三区 | 欧美黑人一级爽快片淫片高清 | 99爱精品在线 | 国产精品毛片久久久久久久 | 国产日韩欧美亚洲 | 日本成人高清视频 | 欧美日本一区二区三区 | 欧美一级欧美三级在线观看 | 国产中文一区 | 色国产精品 | 可以在线观看的黄色 | 欧美精品一区二区三区蜜桃视频 | 成人黄色在线视频 | 国产大片aaa| 日韩午夜电影在线观看 | 国产黄色大片 | 一二三区在线 | 欧洲精品久久久 | 一级欧美 | 国内精品99 | 啪啪免费网站 | 国产美女一区二区 | 亚洲三区在线观看 | 91偷拍精品一区二区三区 | 不卡的av电影 | 日韩专区一区二区三区 | 亚洲日本乱码一区两区在线观看 | 成人免费视频7777777 | 香蕉视频成人在线观看 | 一区二区三区免费网站 | 国产欧美久久久久久 | 一级黄色毛片 | 午夜av影视 | 日韩城人免费 | 国产高清一区 | 精品国产乱码久久久久久闺蜜 | 国产精品毛片一区视频播 | bxbx成人精品一区二区三区 | 国产成人精品一区二区 | 日韩欧美国产一区二区三区 | 欧美成人h版在线观看 | 亚洲国产日本 | xxxx网 | 精品香蕉视频 | 久久精品免费电影 | 在线亚洲观看 | 天天天天综合 | 欧美涩涩网站 | 韩国精品一区 | 日韩av免费在线观看 | 中文字幕国产一区 | 一区二区三区四区免费观看 | 欧美视频三区 | 久久精品亚洲一区 | 中文字幕在线精品 | 欧美一区不卡 | 欧美日一区二区 | 精品国产乱码久久久久久久软件 | 北条麻妃一区二区免费播放 | 久久高潮| 久久精品视频一区 | 亚洲人人 | 欧美日韩一区二区三区在线观看 | 国产精品主播 | 中文字字幕在线观看 | 免费中文字幕 | 日韩国产一区二区三区 | 国产目拍亚洲精品99久久精品 | 嫩草精品 | www.99精品 | 国精产品一区二区三区黑人免费看 | a级片在线观看 | 国产人成精品一区二区三 | 中文字幕免费中文 | 久草成人 | 欧美激情性国产欧美无遮挡 | 中文成人无字幕乱码精品 | 午夜影院在线 | 91蜜桃视频| 在线播放亚洲 | 国产极品视频在线观看 | aⅴ色国产 欧美 | 亚洲免费视频网站 | 日韩午夜电影在线观看 | 国产在线一区二区三区 | av网址在线播放 | 欧美精品一区二区三区中文字幕 | 国产欧美综合一区二区三区 | 国产精品福利午夜在线观看 | 亚洲国产精品成人综合色在线婷婷 | 日韩电影在线看 | 欧美白人做受xxxx视频 | 自拍视频在线播放 | 亚洲精品一区中文字幕乱码 | 国产男女视频在线观看 | 国产精品久久久久久久久久久久冷 | 成视频年人免费看黄网站 | 久久久精品一区 | 视频一区二区三区在线观看 | 国产一区免费在线观看 | 国产精品18hdxxxⅹ在线 | 亚洲综合无码一区二区 | 欧美国产在线观看 | 天天干人人干 | 狠狠干av| 在线亚洲精品 | 国产精品久久精品 | 久久视频在线看 | 特级毛片在线 | 久久国产电影 | 国产噜噜噜噜噜久久久久久久久 | 黄色在线免费观看 | 亚洲一区二区三区免费视频 | a中文在线视频 | 91一区二区| 国产高清在线精品一区二区三区 | 欧洲另类在线1 | 黄色免费一级 | 天堂资源在线 | 国产精品久久久久久亚洲调教 | 艹逼逼视频 | 国产精品中文字幕在线 | 国产精品高清在线 | 亚洲欧美激情在线 | 91精品一区二区三区久久久久久 | 国产精品久久久久久亚洲调教 | 一区二区手机在线 | 亚洲永久免费观看 | 国产一级片免费观看 | 国产区日韩区欧美区 | 在线观看国精产品二区1819 | 久视频在线观看 | 久久少妇免费看 | 国产视频一区二区 | 日韩精品一区在线视频 | 欧美在线观看一区 | 青青久久久 | 日本在线观看一区二区 | 免费一区 | 亚洲精品二区 | 久久久精品综合 | 亚洲国产精品久久久男人的天堂 | 国产视频久久久久 | 国产噜噜噜噜噜久久久久久久久 | 国产一区二区三区在线免费观看 | 91大神免费观看 | 亚洲精品专区 | 国产精品中文字幕在线播放 | 日韩国产中文字幕 | 日韩免费一区 | 欧美日韩视频在线观看免费 | 成年人综合网 | 日本二区视频 | 亚洲国产综合在线 | 国产激情在线观看视频 | 精品人伦一区二区三区蜜桃视频 | 日本在线视频一区二区 | 国产精品日本一区二区不卡视频 | 日韩有码在线播放 | 久在线 | 91av在| aaa在线观看 | avmans最新导航地址 | 成人高清视频在线观看 | 欧美2区 | a级片在线观看 | 一区二区三区成人久久爱 | www久| 亚洲日韩aⅴ在线视频 | 精品久久久久久国产 | 米奇影视7777| 亚洲一一在线 | 黄色片免费看 | 欧美激情小视频 | 久久aⅴ乱码一区二区三区 91综合网 | 亚洲欧洲成人 | 精品成人av | 999国内精品永久免费视频 | 狠狠干狠狠操 | 欧美日韩国产精品 | 黄久久久 | 久草电影网 | 欧美成人免费 | 国产乱xxxxx97国语对白 | 精品www| 日韩在线视频观看 | 中文字幕国产在线视频 | 在线观看一区 | 日本久久综合 | 天天综合视频 | 国产高清免费视频 | 国产乱码精品一区二区三区忘忧草 | 最新中文字幕在线 | 色视频www在线播放国产人成 | 六月综合激情 | 亚洲伦理在线 | 久草在线 | 97理论片 |