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

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

java讀取證書公鑰的實現

瀏覽:9日期:2022-08-18 15:32:15
方式1:

使用javax.security.cert.X509Certificate進行解析

URL url = Demo.class.getClassLoader().getResource('C000024.crt'); //證書路徑System.out.println('公鑰所在路徑:'+url.getFile());X509Certificate cert = X509Certificate.getInstance(new FileInputStream(url.getFile()));PublicKey publicKey = cert.getPublicKey();BASE64Encoder base64Encoder=new BASE64Encoder();String publicKeyString = base64Encoder.encode(publicKey.getEncoded());System.out.println('-----------------公鑰--------------------');System.out.println(publicKeyString);System.out.println('-----------------公鑰--------------------');方式2:

使用java.security.cert.X509Certificate進行解析

URL url = Demo.class.getClassLoader().getResource('C000024.crt'); //證書路徑System.out.println('公鑰所在路徑:'+url.getFile());CertificateFactory cf = CertificateFactory.getInstance('X.509');X509Certificate cert = (X509Certificate)cf.generateCertificate(new FileInputStream(url.getFile()));PublicKey publicKey = cert.getPublicKey(); BASE64Encoder base64Encoder=new BASE64Encoder();String publicKeyString = base64Encoder.encode(publicKey.getEncoded());System.out.println('-----------------公鑰--------------------');System.out.println(publicKeyString);System.out.println('-----------------公鑰--------------------');

說明:

因為只做示例,沒有進行異常處理和流的釋放,方式1的代碼可能少點,方式2需要強轉,美觀上可能方式1更好看點,但方式1的實質還是調用的方式2,方式2內部有實現緩存策略。更多可以參考下api文檔,文檔上有提供示例。

補充:JAVA生成RSA公鑰和私鑰及RSA對數據的加簽和驗簽

背景:

最近來到了新的公司,公司做的是保險支付相關業務,對接渠道的時候經常會用到數據的加簽和驗簽,初次涉及RSA加簽驗簽,通過網站生成了RSA公鑰和私鑰,用私鑰將我要傳送的數據進行了加簽,并將我的公鑰提供給了渠道方進行驗簽,結果在聯調的時候,驗簽總是錯誤,渠道方用自己的私鑰對數據加簽后再用自己的公鑰對數據進行驗簽卻能通過,于是我也用自己的私鑰對數據進行加簽后再用自己的公鑰對數據進行驗簽,結果讓我驚訝,居然沒有通過!

到了這里,產生錯誤的原因基本上已經一目了然了,我通過網站生成的公私鑰是無法配對的,這當中可能涉及到了網站生成公私鑰的時候已經對公私鑰進行了處理,比如說PKCS8的處理,所以決定自己用Java來生成RSA公鑰和私鑰進行驗證測試,文檔寫出來了,測試結果自然已經知道了,是通過的。

以下為完整的驗簽過程:

啟動類:ZhongbaohuiApplication.java

package com.test.zhongbaohui; import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplicationpublic class ZhongbaohuiApplication { public static void main(String[] args) { SpringApplication.run(ZhongbaohuiApplication.class, args); }}

請求Controller:RequestController.java

package com.test.zhongbaohui.controller; import com.alibaba.fastjson.JSONObject;import com.test.zhongbaohui.utils.RSASignUtils;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.util.HashMap;import java.util.Map; /** * @program: zhongbaohui * @package: com.test.zhongbaohui.controller * @description: * @auther: chengjunyu * @createDate: 2019/12/6 22:05 */@RestController@RequestMapping(value='/test')@Slf4jpublic class RequestController { @Autowired private ResponseController responseController; @PostMapping('/getJsonObject') private String getJsonObject(HttpServletRequest request, HttpServletResponse response) { JSONObject jsonObject = new JSONObject(); jsonObject.put('signType', 'RSA'); jsonObject.put('enterpriseId', '201975538583911110'); jsonObject.put('nonce', 'b0eed33073664f5fa983c5b774dbd4b6'); jsonObject.put('timestamp', '2019-12-07 01:19:25'); Map<String, Object> map = new HashMap<>(); map.put('bankCode', '其他'); map.put('batchNo', '201975538583911110b1084fa29f6c'); map.put('bankCardNumber', '6217856100077026406'); map.put('paymentNote', '傭金發放'); map.put('idCardNumber', '320123199103104650'); map.put('mobile', '15365176555'); map.put('bankName', '中國銀行'); map.put('outEnterpriseOrderNo', 'T20191207011545663692017'); map.put('realPayment', '1.00'); map.put('serviceId', '201968613430727001'); map.put('userName', '程俊予'); jsonObject.put('data', map); //私鑰內容 String privateKey = 'MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgFnOID56YNquwenrgnW1Ud+GBcSFojPOY00+TYq/qHVaprGPeuKlAcBebkyj4+G3H4t7e1DTOblQtZk/yi+2VcbDnhHQl3UVdkLkVMRXXCBPBJtjSo3RMMJFC6OCiKfzhujhhio7MJWWrMYLtAgMBAAECgYBplZud/CZv1KLzIA5bdbF2yk36FYoc3hl3iXLeiyp91NGc6hqhFSEyXPhvrZP0aAym9IC824Bjq4Gg7pkkHzYT3IGDCqqyodBYcdof8Jsk9t0G0Ll7G1dlQwl9R6+SAvauF5RUbwz5Byos6cnFbybfqAdRUdF96yH0Hw0QF1u8XQJBAPrpHvZpeOZNSY/M1wlJZv5gV1OoI9s+PZgJQHgWbT7FaiPDkZiAa7B6hGNBgUa7m4vEzGJNAOHxhdl1QMtlTjMCQQD3VInIf9EjKZn7LNcPQsl1AkXbwuXjtMceeuX43lcdapgQ+4Y6G5QU3fhwZxwsdZnUbLqJWzFgXw/F2E2DxopfAkBxGErgfsID7KpPquDySqel2P8DsjIXTIKu2Ny6REGRnaIt5KTnvFrN/StXIduHamC+K0KEvHi9XwQZ9IP0KgGJAkEA3hUzzywuP3OYhzhhN5vRx1YuIkGkKU3nSdAy9b+323seZoljooOm+QHDljKP0sAaS+sBqFqRQKa7Q/yQxdWd4wJBAIUXethFnMr3U9FetKHmWKwOPh23EHM0xPdVzMcb24WwK7QAXCMo71ugG6qqmBA+wYCrjPwbMu5XysB5+d5ZNC0='; String sign = RSASignUtils.sign(jsonObject, privateKey); log.info('驗簽sign為:{}', sign); jsonObject.put('sign', sign); String message = responseController.returnMsg(jsonObject.toJSONString()); return message; }}

響應Controller:ResponseController.java

package com.test.zhongbaohui.controller; import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.test.zhongbaohui.utils.RSASignUtils;import lombok.extern.slf4j.Slf4j;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RestController; /** * @program: zhongbaohui * @package: com.test.zhongbaohui.controller * @description: * @auther: chengjunyu * @createDate: 2019/12/7 20:46 */@RestController@Slf4jpublic class ResponseController { @PostMapping('/returnMsg') public String returnMsg(String message) { JSONObject jsonObject = JSONObject.parseObject(message); log.info('接受請求內容為:{}', jsonObject.toJSONString()); String sign = jsonObject.getString('sign'); jsonObject.remove('sign'); String publicKey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD5gn/eAnLyf6xZziA+emDarsHp64J1tVHfhgXEhaIzzmNNPk2Kv6h1Wqaxj3ripQHAXm5Mo+Phtx+Le3tQ0zm5ULWZP8ovtlXGw54R0Jd1FXZC5FTEV1wgTwSbY0qN0TDCRQujgoin84bo4YYqOzCVlqzGC7QIDAQAB'; boolean flag = RSASignUtils.verify(jsonObject, publicKey, sign); JSONObject object = new JSONObject(); if(flag) { object.put('code', '200'); object.put('status', 'success'); object.put('message:', '驗簽成功'); }else { object.put('code', '400'); object.put('status', 'failure'); object.put('message:', '驗簽失敗'); } return object.toJSONString(); }}

RSA工具類:RSASignUtils.java

package com.test.zhongbaohui.utils; import com.alibaba.fastjson.JSONObject;import lombok.extern.slf4j.Slf4j;import org.apache.tomcat.util.codec.binary.Base64;import org.springframework.stereotype.Component;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder; import java.io.IOException;import java.io.UnsupportedEncodingException;import java.security.*;import java.security.interfaces.RSAPrivateKey;import java.security.interfaces.RSAPublicKey;import java.security.spec.InvalidKeySpecException;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;import java.util.HashMap;import java.util.Map; /** * @program: zhongbaohui * @package: com.test.zhongbaohui.controller * @description: * @auther: chengjunyu * @createDate: 2019/12/6 23:03 */@Slf4j@Componentpublic class RSASignUtils { public static final String KEY_ALGORITHM = 'RSA'; private static final String PUBLIC_KEY = 'RSAPublicKey'; private static final String PRIVATE_KEY = 'RSAPrivateKey'; public static final String SIGNATURE_ALGORITHM='MD5withRSA'; public static final Integer RSA_KEY_SIZE = 1024; /* * @function: 使用字符串格式的私鑰為JSONObject格式的內容加簽 * @param: [jsonObject, privateKey] * @return: java.lang.String * @auther: chengjunyu * @date: 2019/12/7 21:06 */ public static String sign(JSONObject jsonObject, String privateKey) { String signMsg = ''; String data = jsonObject.toString(); log.info('加簽對象內容為:{}', data); try { byte[] keyBytes = decryptBASE64(privateKey); PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance('RSA'); PrivateKey key = keyFactory.generatePrivate(keySpec); Signature signature = Signature.getInstance('MD5withRSA'); signature.initSign(key); signature.update(data.getBytes('ISO-8859-1')); signMsg = Base64.encodeBase64String(signature.sign()); } catch (Exception var8) { var8.printStackTrace(); } return signMsg; } /* * @function: 使用字符串格式的公鑰為JSONObject格式的內容驗簽 * @param: [jsonObject, publicKey, sign] * @return: boolean * @auther: chengjunyu * @date: 2019/12/8 14:56 */ public static boolean verify(JSONObject jsonObject, String publicKey, String sign) { String s = jsonObject.toJSONString(); log.info('s:{}',s); boolean rs = false; try { byte[] keyBytes = decryptBASE64(publicKey); X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance('RSA'); PublicKey key = keyFactory.generatePublic(keySpec); Signature signature = Signature.getInstance('MD5withRSA'); signature.initVerify(key); signature.update(s.getBytes('ISO-8859-1')); return signature.verify(Base64.decodeBase64(sign.getBytes())); } catch (Exception var9) { var9.printStackTrace(); return rs; } } /* * @function: 獲取PublicKey格式的公鑰,本例中未使用 * @param: [key] * @return: java.security.PublicKey * @auther: chengjunyu * @date: 2019/12/8 16:10 */ public static PublicKey getPublicKey(String key) { PublicKey publicKey = null; try { byte[] keyBytes = (new BASE64Decoder()).decodeBuffer(key); X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes); // RSA對稱加密算法 KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); // 取公鑰匙對象 publicKey = keyFactory.generatePublic(keySpec); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (InvalidKeySpecException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return publicKey; } /* * @function: 獲取PublicKey格式的私鑰,本例中未使用 * @param: [key] * @return: java.security.PrivateKey * @auther: chengjunyu * @date: 2019/12/8 16:10 */ public static PrivateKey getPrivateKey(String key) { PrivateKey privateKey = null; try { byte[] keyBytes = (new BASE64Decoder()).decodeBuffer(key); PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); privateKey = keyFactory.generatePrivate(keySpec); } catch (IOException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (InvalidKeySpecException e) { e.printStackTrace(); } return privateKey; } /* * @function: 初始化公鑰和私鑰 * @param: [] * @return: java.util.Map<java.lang.String,java.lang.Object> * @auther: chengjunyu * @date: 2019/12/8 14:34 */ public static Map<String, Object> initKey() { KeyPairGenerator keyPairGen = null; try { keyPairGen = KeyPairGenerator.getInstance(KEY_ALGORITHM); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } keyPairGen.initialize(RSA_KEY_SIZE); KeyPair keyPair = keyPairGen.generateKeyPair(); RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); Map<String, Object> keyMap = new HashMap<String, Object>(2); keyMap.put(PUBLIC_KEY, publicKey); keyMap.put(PRIVATE_KEY, privateKey); return keyMap; } //獲得公鑰字符串 public static String getPublicKeyStr(Map<String, Object> keyMap) { //獲得map中的公鑰對象 轉為key對象 Key key = (Key) keyMap.get(PUBLIC_KEY); //編碼返回字符串 return encryptBASE64(key.getEncoded()); } //獲得私鑰字符串 public static String getPrivateKeyStr(Map<String, Object> keyMap) { //獲得map中的私鑰對象 轉為key對象 Key key = (Key) keyMap.get(PRIVATE_KEY); //編碼返回字符串 return encryptBASE64(key.getEncoded()); } //編碼返回字符串 public static String encryptBASE64(byte[] key) { return (new BASE64Encoder()).encodeBuffer(key); } //解碼返回byte public static byte[] decryptBASE64(String key) { byte[] bytes = null; try { return (new BASE64Decoder()).decodeBuffer(key); } catch (IOException e) { return bytes; } } public static void main(String[] args) { Map<String, Object> keyMap = initKey(); String publicKey = getPublicKeyStr(keyMap); log.info('JAVA生成RSA公鑰:{}', publicKey); String privateKey = getPrivateKeyStr(keyMap); log.info('JAVA生成RSA私鑰:{}', privateKey); }}

注意:

本文中請求和響應類中的私鑰和公鑰均是不完整的,在請求和響應類中的私鑰和公鑰由RSASignUtils工具類生成后,再替代入請求和響應類中,請求類中使用私鑰加簽,響應類中使用公鑰驗簽。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Java
相關文章:
主站蜘蛛池模板: 欧美在线视频一区二区 | 久久久久久久久一区二区三区 | 国产成人久久 | 色综合一区二区三区 | 日本精品免费 | 日本一区二区三区免费观看 | 亚洲h视频 | 国产一区二区成人 | 精品国产91乱码一区二区三区 | 九九综合九九综合 | 伊人青青草 | 日本欧美在线观看 | 成人精品在线视频 | 国产一区在线不卡 | 99热.com| 欧美在线观看一区二区 | 国产精品夜色一区二区三区 | 日韩视频精品 | 国产免费一区二区三区最新不卡 | 日韩精品一区在线 | 欧美日韩在线观看一区二区三区 | 精品香蕉一区二区三区 | 免费国产视频 | 日韩在线观看第一页 | 国产精品中文字幕在线播放 | 午夜色电影 | 亚洲福利在线观看 | 国产精品www | 99热新 | 日韩三级黄 | 日韩视频一区在线观看 | 久综合网 | 精品日韩一区二区三区 | 精品欧美一区二区在线观看 | 国产精品久久精品 | 午夜小视频在线观看 | 久久激情网 | 国产福利91精品一区二区 | 中文字幕第100页 | 中文字幕一区在线观看视频 | 午夜视频在线观看网址 | 成人免费观看49www在线观看 | 久草精品在线观看 | 国产视频一区二区三区四区 | 欧美一区二区大片 | 精品国产高清一区二区三区 | 欧美区国产区 | 成年入口无限观看网站 | 亚洲人人| 成人高清视频免费观看 | 国产精品高潮呻吟av久久4虎 | 国产激情在线 | 欧美一区在线观看视频 | 日本中文字幕在线观看 | 亚洲人网站 | 91超碰在线观看 | 国产精品日日夜夜 | 国产亚洲一区在线 | 国产精品一区二区三区在线播放 | 亚洲最黄视频 | 精品国产欧美一区二区 | 日韩欧美不卡 | 超碰在线看| 91综合在线观看 | 激情久久久 | 国产精品中文字幕在线观看 | 成人在线影视 | 狠狠爱亚洲 | 久久精品91久久久久久再现 | 午夜精品一区二区三区在线 | av国产精品| 高清视频一区 | 成人精品一区二区三区 | 日韩精品一区二区三区四区视频 | 免费黄色特级片 | 91久久综合亚洲鲁鲁五月天 | www国产在线观看 | 国产不卡一区 | 日韩一区二区视频 | 操视频网站 | 中文字幕在线综合 | 搞黄视频在线观看 | 999精品在线 | 精品国产一区二区在线 | 亚洲成人av一区二区三区 | 亚洲www视频 | 亚洲成av人乱码色午夜 | 亚洲成人网一区 | 国产成人久久精品麻豆二区 | 狠狠亚洲 | 亚洲第一福利视频 | 日韩欧美在线一区二区 | 国产欧美精品一区aⅴ影院 毛片视频网站 | 中文字幕日韩在线 | 91传媒在线播放 | 亚洲精品久久久久久动漫 | 视频一区二区三区中文字幕 | 成人在线亚洲 | 国产精品久久久久久久久久久久久久久久 | 国产视频网 | 成人国产在线 | 国产欧美综合一区二区三区 | 国产中文字幕在线观看 | www.国产精品| av综合站| 亚洲人成在线播放 | 超碰人人爱 | 久久久久久久99精品免费观看 | 日韩中文字幕国产 | 自拍视频网 | 国产精品美女久久久 | 日日操夜夜| 亚洲91 | 亚洲最大成人 | 欧美偷偷操 | 中文字幕在线免费播放 | 国产日韩欧美在线观看 | 国产成人精品一区二区在线 | 国产一区二区精品 | 国产色在线 | 亚洲一区二区三区免费在线观看 | 亚洲av毛片 | 国产成人精品久久二区二区 | 欧美一级播放 | 天天插天天干 | 色在线播放| 久久精品无码一区二区日韩av | 正在播放国产一区 | 天天影视综合 | 国产精品毛片久久久久久久 | 国产精品美女久久久久久久久久久 | 热久久这里只有精品 | 亚洲天堂黄色 | 欧美黄 片免费观看 | 国产精品27页 | 蜜臀久久99精品久久久无需会员 | 九九亚洲视频 | 色香蕉在线 | 国产精品久久久一区二区三区 | 精品国产99 | 日韩在线播放欧美字幕 | 成人av免费| 国产一区影院 | 免费一级毛片 | 亚洲97 | 91精品国产综合久久国产大片 | 成人黄色片网站 | 国产精品久久久久久 | 九九热这里都是精品 | 古风h啪肉1v1摄政王 | 国产精品亚洲成人 | 爱干在线 | 久久丁香 | 91精品一区二区三区久久久久 | 永久91嫩草亚洲精品人人 | 精品久久一区二区三区 | 久久亚洲二区 | 国产精久久| 成人在线视频网站 | 亚洲精品久久久久久久久久久 | 日本久久久久久久久久久久 | 在线天堂av | 国产精品亚洲欧美日韩一区在线 | 99成人精品| 九九免费视频 | 国产一区2区 | 一区二区中文字幕在线观看 | 理伦影院| 国产精品国产三级国产aⅴ中文 | 日日夜夜狠狠 | 黄色在线免费观看 | 欧洲亚洲精品久久久久 | 欧美日韩一区二区三区在线观看 | 一区二区色| 一区二区三区播放 | 日韩精品一区二区三区在线观看 | 色综久久 | 日韩在线色 | 日韩在线成人 | 亚洲精品综合 | 中文字幕亚洲精品 | 欧美中文字幕一区 | 免费国产一区二区 | 国产高清在线精品 | 中文字幕视频在线 | 国产在线一二 | 91精品综合久久久久久五月天 | 日韩中文字幕一区 | 亚洲精品一区二区三区中文字幕 | 日本三级一区二区 | 午夜视频网址 | 狠狠干狠狠干 | 精品视频在线视频 | 一区二区三区精品 | 国产一区在线免费观看 | 一区二区视频在线 | 精品欧美一区二区精品久久久 | 最新中文字幕在线 | 热久久影院 | 国产a视频 | 国产1区2区 | av网站大全免费 | 日本精品免费 | 国产中文一区 | 久久99精品视频在线观看 | 欧美亚洲一区二区三区 | 欧美一级大片 | 午夜视频精品 | 亚洲精品一区二区三区在线播放 | 亚洲中出 | 国产一区二区三区四区在线观看 | 国产成人在线免费观看 | 欧美国产视频 | 美女福利视频网站 | 国产一区亚洲 | 欧美.com| 免费视频一区 | 日韩中文字 | 欧美在线视频网 | 91在线电影| www.一区二区 | 欧美日韩在线观看中文字幕 | 国产一区二区免费 | 越南性xxxx精品hd | 久久人人爽人人爽人人片av软件 | 免费av片网站 | 亚洲精品一区二区三区中文字幕 | 久久久久久国产精品美女 | avmans最新导航地址 | 日韩午夜 | 国产欧美在线播放 | 天天在线综合 | 在线观看午夜免费视频 | 国产妇女乱码一区二区三区 | 亚洲一区二区三区四区的 | 在线观看av不卡 | 亚洲视频一区二区三区 | 亚洲视频免费在线观看 | 国产精品网站在线看 | 狠狠操麻豆| 国产综合精品一区二区三区 | 国产九九av| 日韩免费视频 | 久久国产精品一区 | 国产精品毛片久久久久久久 | 色噜噜在线 | 亚洲精选免费视频 | 成人欧美一区二区三区色青冈 | 国产黄色在线免费看 | av片免费| 日韩三级在线免费观看 | 国产精品18 | 中文字幕在线免费播放 | 日韩视频国产 | 天天操天天碰 | 亚洲人成人一区二区在线观看 | 国产精品久久久久久久久久10秀 | 免费的黄色片子 | 国产精品久久久久久久午夜片 | 亚洲视频中文字幕 | 精品国产一区一区二区三亚瑟 | 国产午夜精品一区二区三区视频 | 日韩免费视频一区二区 | 国产精品视频专区 | 日韩精品一区二区三区视频播放 | 粉嫩视频在线观看 | 亚洲福利在线播放 | 日本视频网 | 91精品久久 | 久久电影一区 | 欧美狠狠操| 97人人超碰| 在线观看中文 | 久久综合一区二区三区 | 国产v日产∨综合v精品视频 | 黄色毛片免费看 | 天天看夜夜 | 一级免费黄视频 | 国产精品久久久久久久久久久久久 | 综合一区二区三区 | 久久精品欧美 | 另类一区 | 亚洲三级在线观看 | 成人午夜影院 | 精品一区二区三区久久 | 热久久免费视频 | 久久久久久亚洲 | 天天干人人 | 国产精品毛片一区二区三区 | 久久51 | 成人影音 | 午夜影院在线 | 中国一级毛片 | 综合五月激情 | 国产欧美综合一区二区三区 | 91在线精品一区二区 | 国产日产精品一区二区三区四区 | 亚洲免费在线视频 | av在线播放网站 | 欧美精产国品一二三区 | 国产精品久久一区二区三区 | 国产精品视屏 | 国产一级免费视频 | 一区二区视频在线观看 | 国产区免费观看 | 中文字幕亚洲欧美日韩在线不卡 | 国产精品久久久久久久久久小说 | 欧美自拍视频 | 国产99久久精品一区二区永久免费 | 午夜影视在线观看 | 日本黄色影片在线观看 | 精品国产99 | 美女操网站 | 中文成人在线 | 国产精品自拍一区 | 欧美亚洲视频在线观看 | 91啦| 久久精品欧美 | 99re在线视频 | 日韩久久久久久 | 亚洲成av人乱码色午夜 | 亚洲国产精品t66y | 日韩欧美a级v片免费播放 | 在线a电影 | 国产精品自产拍在线观看 | 国产精品久久国产精品 | 少妇精品久久久久久久久久 | 欧美大片免费高清观看 | 亚洲欧美一区二区三区在线 | 亚洲人成一区 | 国产欧美高清在线观看 | 国产成人免费视频网站高清观看视频 | 欧美一区二区三区电影 | 亚洲一区二区中文 | 日韩久久影院 | 台湾av在线 | 黄网址在线观看 | 男女爱爱免费视频 | 国产伦精品一区二区三区四区视频 | 精品国产91亚洲一区二区三区www | 午夜国产一区 | 韩国精品主播一区二区在线观看 | 久久99久久久久 | 激情久久av一区av二区av三区 | 在线免费观看一区 | 欧美一区在线看 | 在线免费观看成年人视频 | av在线免费网址 | 山外人精品 | 探花在线观看 | www亚洲成人| 久久久久9999国产精品 | 99精品久久久久久久免费看蜜月 | 特黄一级 | 久久99视频这里只有精品 | 国产精品久久久久久久久久免费看 | 亚洲视频在线观看免费 | 精品久久久久久亚洲精品 | 九九综合九九 | 伊人欧美在线 | 麻豆成人在线 | 国产福利91精品一区二区三区 | 成人在线h| 你懂的在线视频播放 | 最新中文字幕 | 欧美日韩久久精品 | 三级av | 欧美激情高清 | 91成人精品| 亚洲欧美中文日韩在线v日本 | 性色网站| 99久久99| 日夜夜精品 | 欧美涩涩网 | 999视频网 | 日韩精品一区二区三区中文在线 | 国产区视频在线观看 | 欧美亚洲日本 | 欧美精品在线视频 | 日韩一区欧美 | 影音先锋成人资源网 | 九九热精品免费视频 | 成人免费视频在线观看 | 欧洲精品一区 | 亚洲精品日韩综合观看成人91 | 欧美久久视频 | 欧美一级成人欧美性视频播放 | 日本三级国产 | 在线只有精品 | 国产精品久久久久久久美男 | 久久综合一区二区三区 | 成人精品一区二区三区 | 亚洲一区二区三区在线 | 在线第一页 | 亚洲一区二区三区中文字幕 | 久久久久久久久久久久国产精品 | 国产免费一区二区 | 国产精品久久久久久久久久久免费看 | 亚洲h| 亚洲成人网一区 | 精品午夜久久 | 欧洲一区二区三区 | 草久网| 日韩av手机在线免费观看 | 欧美不卡一区二区三区 | 久久精品一区二区三区不卡牛牛 | 国产精品二区一区二区aⅴ污介绍 | 一本大道综合伊人精品热热 | 亚洲精品成人av | 精品久久久久久久久久 | 夜夜爽网址 | 国产成人精品一区二区 | 丁香婷婷在线 | 黑人精品视频 | 亚洲毛片在线观看 | 99热在线播放 | 亚洲人久久 | 一级免费黄色免费片 | 日本激情网 | 91av官网| 欧美一卡二卡在线观看 | 久久久久一区二区三区 | 欧美在线综合 | 国产精品一区二区三区在线 | 国产午夜视频 | 成人日批视频 | 福利视频网址导航 | 日韩性网站 | 在线观看免费黄色小视频 | 欧美二三区 | 午夜家庭影院 | 欧美自拍一区 | 国产成人精品综合 | 国产精品亚洲精品 | 毛片免费观看视频 | 中文字幕在线第一页 | 99久久久国产精品 | 日本大人吃奶视频xxxx | 国产一级在线观看 | 美女一级a毛片免费观看97 | 岛国免费| 国产精品3区 | 亚洲成人av在线 | 成年入口无限观看网站 | 超碰官网| 成年人在线观看 | 激情五月婷婷综合 | 99久久精品免费看国产免费粉嫩 | 亚洲欧洲精品在线 | 国产精品成人久久久久 | 欧美嘿咻| 在线区| 久久久久久毛片免费播放 | 狠狠干很很操 | 一区二区精品视频在线观看 | 羞羞网页 | 99草草 | 精品国产乱码久久久久久蜜柚 | 欧美一区二区三区精品 | 午夜天堂精品久久久久 | 免费在线看a | 黄色国产在线看 | 欧美精品一区二区三区四区 | 免费h在线观看 | 精品久久中文字幕 | а_天堂中文最新版地址 | 福利片中文字幕 | 亚洲精品一区二区三区蜜桃久 | 国产精品久久精品 | 欧洲亚洲一区 | 日韩一区在线视频 | 午夜影院黄色 | 美女久久| 日韩精品久久理论片 | 国产午夜精品久久久久免费视高清 | 99热这里有精品 | 日韩欧美在线视频观看 | 免费看一区二区三区 | 国产在线视频在线 | 亚洲h视频 | 免费国产黄色大片 | 成人精品视频99在线观看免费 | 欧美喷潮久久久xxxxx | 日韩精品久久久久 | 亚洲免费电影一区 | 午夜精品久久久久久久99黑人 | 亚洲精品一区在线观看 | 伊人网站 | 草久在线观看 | 国产精品久久久久久久久久免费 | 成人高清在线 | 国产一级免费视频 | 成人一区在线观看 | 99re在线观看 | 精品一区二区在线观看 | 久久艹99| 91色在线观看 | 日韩成人免费 | 亚洲精品自在在线观看 | www精品| 久操视频在线 | gogo熟少妇大胆尺寸 | 亚洲久草 | 在线视频亚洲 | 欧美在线观看网站 | 亚洲毛片 | 亚洲自拍偷拍av | 一级黄色录像免费观看 | 精品亚洲永久免费精品 | 久久国产精品久久久久久电车 | 日本在线小视频 | 欧美午夜在线观看 | 亚洲综合色自拍一区 | 一区二区在线看 | 国产色在线 | 福利视频网址导航 | 91国产精品入口 | 在线观看免费国产 | 高清一区二区三区视频 | 在线日韩视频 | 欧美日韩一区二区在线 | 一级a毛片| 久热官网| 久久精品国产免费 | av黄色在线免费观看 | 亚洲国产成人精品女人 | 婷婷在线视频 | 日韩a| 欧美1区| 日本一二三区视频 | 日韩一级视频 | 亚洲一区在线视频 | 欧美视频一区 | 日韩精品一区二区三区中文在线 | 精品一区二区三区免费 | 伊人二区 | 日韩一区二区免费视频 | 久久精品国产99国产精品 | 一区二区三区免费在线观看 | 天天干天天干天天干天天射 | 高清在线一区二区 | 亚洲 欧美 日韩 在线 | 91亚洲狠狠婷婷综合久久久 | www.日韩视频 | 99久久久无码国产精品 | 中文字幕乱码一区二区三区 | 国产视频久久久 | 黄色一级毛片 | 久久视频免费 | 黄色官网在线观看 | 日韩成人在线播放 | 成人午夜精品久久久久久久蜜臀 | 久久久高清 | 久久久久久久国产 | 久久久性色精品国产免费观看 | 日韩一区二区在线观看 | 国产精品美女视频 | 国产精品久久久久一区二区三区 | 精品一区二区久久久久久久网站 | 在线看一区二区 | 亚洲www啪成人一区二区 | 日韩精品一区二区三区在线观看 | 免费看毛片的网站 | 国产一区av在线 | 91免费观看视频 | 国产精品成人3p一区二区三区 | 毛片com| 中文一区二区 | 久久综合一区 | 欧美一区二区三区 | av在线精品| 日韩中文字幕一区二区高清99 | 国产精品久久久久久久久久免费看 | 国产精品久久久久久久午夜片 | 三级视频网站 | 超碰免费在 | 高清久久 | av在线入口 | 日日躁夜夜操 | 日本高清中文字幕 | 亚洲视频一区在线播放 | 久久99国产精品久久99大师 | 日韩a在线 | 中文久久| 免费黄在线观看 | 精品成人免费一区二区在线播放 | 特大毛片| 国产精品美女久久久久aⅴ国产馆 | 久久9999久久 | 四虎久久精品 | 黄色免费高清视频 | 亚洲中午字幕 | 亚洲欧洲精品一区二区三区 | 韩国一区二区视频 | 毛片视频观看 | 国产99久久精品一区二区永久免费 | 国产欧美综合一区二区三区 | 精品国产乱码久久久久久1区2区 | 欧美福利一区 | 免费观看一级毛片 | 美女h在线观看 | 欧美激情国产日韩精品一区18 | 国久久久| 成视频年人免费看黄网站 | 国产精品一二三四区 | 日本午夜电影 | 国产精品96久久久久久久 | 久久久久久国产免费 | 久久国产综合 | 国产精品成人3p一区二区三区 | 亚洲黄色av网站 | 亚洲精品国产综合区久久久久久久 | 久草青青 | 日韩国产欧美亚洲 | 国产精品久久久一区二区 |