国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

java.security框架之簽名、加密、摘要及證書

共 21386字,需瀏覽 43分鐘

 ·

2021-04-06 23:23

前言

和前端進(jìn)行數(shù)據(jù)交互時(shí)或者和第三方商家對(duì)接時(shí),需要對(duì)隱私數(shù)據(jù)進(jìn)行加密。單向加密,對(duì)稱加密,非對(duì)稱加密,其對(duì)應(yīng)的算法也各式各樣。java提供了統(tǒng)一的框架來規(guī)范(java.security)安全加密這類API。下面將一一介紹

  • 加密算法概念及分類
  • 秘鑰生成
  • 摘要算法工具-MessageDigest
  • 簽名算法工具-Signature
  • 常用加密工具類-Cipher
  • Certificate-證書的保存
  • KeyStore-密鑰證書的實(shí)體類
  • https證書加載

關(guān)注公眾號(hào),一起交流;微信搜一搜: 潛行前行

1 加密算法概念及分類

常用的加密算法類型有三種,如下:

  • 單向加密:也就是不可逆的加密,例如MD5,SHA,HMAC
  • 對(duì)稱加密:也就是加密方和解密方利用同一個(gè)秘鑰對(duì)數(shù)據(jù)進(jìn)行加密和解密,例如DES,PBE等等
  • 非對(duì)稱加密:非對(duì)稱加密分為公鑰和秘鑰,二者是非對(duì)稱的,例如用私鑰加密的內(nèi)容需要使用公鑰來解密,使用公鑰加密的內(nèi)容需要用私鑰來解密,DSA,RSA

2 秘鑰生成

對(duì)稱加密密鑰的生成

  • KeyGenerator用于生成對(duì)稱秘鑰(可逆加密),或者一個(gè)密碼性秘鑰
  • 支持算法:AES、ARCFOUR、DES、DESede、HmacMD5、HmacSHA1、HmacSHA224、HmacSHA256、HmacSHA384、HmacSHA512、RC2
public static final KeyGenerator getInstance(String algorithm, String provider)
public static final KeyGenerator getInstance(String algorithm)
public final void init(int keysize)
public final void init(int keysize, SecureRandom random)
public final void init(SecureRandom random)
public final void init(AlgorithmParameterSpec params, SecureRandom random)
public final SecretKey generateKey()
  • 示例
public static void main(String[] args) throws  Exception {
    SecretKey secretKey = generatorDesKey();
    System.out.println(secretKey);
}
public static SecretKey generatorDesKey() throws NoSuchAlgorithmException {
    KeyGenerator keyGen = KeyGenerator.getInstance("DES");
    SecureRandom random = new SecureRandom();
    random.nextBytes(new byte[128]);
    keyGen.init(56,random);
    SecretKey key = keyGen.generateKey();
    return key;
}
------------輸出結(jié)果------------------
com.sun.crypto.provider.DESKey@185c3

非對(duì)稱加密秘鑰的生成

  • KeyPairGenerator用于生成非對(duì)稱加密算法的密鑰對(duì)KeyPair,KeyPair會(huì)包括一個(gè)公鑰和私鑰
  • 支持算法:DiffieHellman、DSA、RSA、RSASSA-PSS、EC
//KeyPairGenerator.java
public static KeyPairGenerator getInstance(String algorithm)
public static KeyPairGenerator getInstance(String algorithm, String provider)
public void initialize(int keysize, SecureRandom random)
public void initialize(AlgorithmParameterSpec params, SecureRandom random)
public final KeyPair genKeyPair() 
//KeyPair.java
public PublicKey getPublic()
public PrivateKey getPrivate()
  • 示例
public static void main(String[] args) throws Exception {
    KeyPair keyPair = generatorRsaKey();
    System.out.println(keyPair);
}
public static KeyPair generatorRsaKey() throws Exception {
    KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
    SecureRandom random = new SecureRandom();
    random.nextBytes(new byte[516]);
    keyGen.initialize(516,random);
    KeyPair keyPair = keyGen.genKeyPair();
    System.out.println(keyPair.getPrivate());
    System.out.println(keyPair.getPublic());
    return keyPair;
}
  • 輸出結(jié)果
SunRsaSign RSA private CRT key, 516 bits
  params: null
  modulus: 126519853979546358862851378153247782379894323767375778571361894186790679401365500006956495592162216057219204240578435837612184688685910973224797092901015673
  private exponent: 84346569319697572575234252102165188253262882511583852380907929457860452934243188047935652497010382336410866699832067872276413297543254894848799721123249067
Sun RSA public key, 516 bits
  params: null
  modulus: 126519853979546358862851378153247782379894323767375778571361894186790679401365500006956495592162216057219204240578435837612184688685910973224797092901015673
  public exponent: 3
java.security.KeyPair@5010be6

密鑰Key和密鑰規(guī)格KeySpec的相互轉(zhuǎn)化

?

If the key is stored on a hardware device, its specification may contain information that helps identify the key on the device

?
?

KeySpec是一個(gè)接口,用來組成加密密鑰的密鑰內(nèi)容的(透明)規(guī)范。如果密鑰存儲(chǔ)在硬件設(shè)備上,則其規(guī)范可以包含有助于標(biāo)識(shí)該設(shè)備上的密鑰的信息

?
  • KeySpec具有規(guī)范性,所以一般會(huì)根據(jù)外部參數(shù)生成KeySpec,再根據(jù)KeySpec生成對(duì)應(yīng)的Key(個(gè)人理解,如有高見,請(qǐng)說出你的見解)。SecretKeyFactory、KeyFactory的作用就是轉(zhuǎn)換Key與KeySpec

SecretKeyFactory:用于對(duì)稱加密的密鑰和密鑰規(guī)格之間的轉(zhuǎn)換,配合KeyGenerator使用

  • 支持算法:AES、ARCFOUR、DES、DESede、PBEWithMD5AndDES、PBEWithHmacSHA256AndAES_128、PBKDF2WithHmacSHA256
public static final SecretKeyFactory getInstance(String algorithm)
public static final SecretKeyFactory getInstance(String algorithm, String provider)
public final SecretKey translateKey(SecretKey key)
public final SecretKey generateSecret(KeySpec keySpec)
public final KeySpec getKeySpec(SecretKey key, Class<?> keySpec)
  • 示例
public static void main(String[] args) throws Exception {
    SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
    byte[] DESKey = "helloWWW".getBytes(StandardCharsets.UTF_8);// 設(shè)置密鑰
    DESKeySpec keySpec = new DESKeySpec(DESKey);// 設(shè)置密鑰參數(shù)
    SecretKey key = keyFactory.generateSecret(keySpec);// 得到密鑰對(duì)象
    System.out.println(key);
}
------------輸出結(jié)果------------------
com.sun.crypto.provider.DESKey@18e49

KeyFactory:用于非對(duì)稱加密的密鑰和密鑰規(guī)格之間的轉(zhuǎn)換,配合KeyPairGenerator使用

  • 支持算法:DiffieHellman、DSA、RSA、RSASSA-PSS、EC
//KeyFactory.java
public static KeyFactory getInstance(String algorithm)
public static KeyFactory getInstance(String algorithm, String provider)
public final PublicKey generatePublic(KeySpec keySpec)
public final PrivateKey generatePrivate(KeySpec keySpec)
public final <T extends KeySpec> T getKeySpec(Key key, Class<T> keySpec)
  • 示例
public static void main(String[] args) throws Exception {
    //生成RSA秘鑰對(duì);generatorRsaKey是上面示例提供的函數(shù)
    KeyPair keyPair = generatorRsaKey();
    System.out.println(keyPair);
    //PublicKey轉(zhuǎn)KeySpec;KeySpec再轉(zhuǎn)PublicKey
    X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(keyPair.getPublic().getEncoded());
    KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    PublicKey pubKey = keyFactory.generatePublic(pubKeySpec);
    System.out.println(pubKey);
    //PrivateKey轉(zhuǎn)KeySpec;KeySpec再轉(zhuǎn)PrivateKey
    PKCS8EncodedKeySpec priKeySpec = new PKCS8EncodedKeySpec(keyPair.getPrivate().getEncoded());
    PrivateKey priKey = keyFactory.generatePrivate(priKeySpec);
    System.out.println(priKey);
}
  • 輸出結(jié)果
java.security.KeyPair@78e03bb5
Sun RSA public key, 1024 bits
  params: null
  modulus: 94134923375030889337699664145116176095803777687781162111756914700229869014912695784710407302811615186395818803402552376808400599961548587586207216709744471870318354813036696801675648731428269930963470277811176883827680414539855481218813862408748594430021606927061565116386180650249935749556615770533203721821
  public exponent: 65537
SunRsaSign RSA private CRT key, 1024 bits
  params: null
  modulus: 94134923375030889337699664145116176095803777687781162111756914700229869014912695784710407302811615186395818803402552376808400599961548587586207216709744471870318354813036696801675648731428269930963470277811176883827680414539855481218813862408748594430021606927061565116386180650249935749556615770533203721821
  private exponent: 67868152791098303572124282937222322055125020915630253288684471666171190487123683962152169691286583419399765605089805755591451063493647416931630849589322449230367252892862038338916192807582203337302166911147185956153147905653905702289234855039234840869874793012808454810161546053566242403672442319692325665473

3 摘要算法-MessageDigest和javax.crypto.Mac(HMAC)

  • 單向加密是不可逆的,MD5、SHA、MAC都是屬于單向加密算法的一種,也稱之為摘要算法
  • MD5、SHA它們會(huì)根據(jù)明文用哈希算法計(jì)算一個(gè)固定長(zhǎng)度的摘要(哈希值),然后把明文和摘要發(fā)送給接收者,接收者根據(jù)同樣的算法計(jì)算出摘要,對(duì)比兩個(gè)摘要是否一樣即可驗(yàn)證明文的正確性,它的應(yīng)用場(chǎng)景是:防止篡改和校驗(yàn)數(shù)據(jù)
  • MD5、SHA等算法是開源的,容易被試探出來。有沒有更安全的摘要算法呢?HMAC-帶密鑰(密碼)的hash函數(shù),用一個(gè)密鑰和一個(gè)明文消息作為輸入,生成一個(gè)消息摘要。密鑰一般使用KeyGenerator創(chuàng)建,相當(dāng)于一個(gè)密碼值,其被試探出的概率小
  • MessageDigest支持的算法:MD2、MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256
  • javax.crypto.Mac支持的算法:HmacMD5、HmacSHA1、HmacSHA224、HmacSHA256、HmacSHA384、HmacSHA512、PBEWithHmacSHA1
  • MD5的示例
MessageDigest digest = MessageDigest.getInstance("MD5");
System.out.println(new String(digest.digest("hello world!".getBytes())));
System.out.println(new String(digest.digest("hello world!".getBytes())));
------------輸出結(jié)果------------------
0???G??w
0???G??w
  • MAC的示例
public static void main(String[] args) throws Exception {
    // 初始化HmacMD5摘要算法的密鑰產(chǎn)生器
    KeyGenerator generator = KeyGenerator.getInstance("HmacMD5");
    // 產(chǎn)生密鑰
    SecretKey secretKey = generator.generateKey();
    //SecretKeySpec繼承于SecretKey和KeySpec,因此可直接用SecretKeySpec初始化Mac
    //SecretKey secretKey = new SecretKeySpec("password".getBytes(), "HmacMD5");
    Mac mac = Mac.getInstance("HmacMD5");
    mac.init(secretKey);
    //計(jì)算摘要
    String data = "hello world";
    byte[] result1 = mac.doFinal(data.getBytes());
    byte[] result2 = mac.doFinal(data.getBytes());
    System.out.println(new String(result1).equals(new String(result2)));
}
------------輸出結(jié)果------------------    
true

4 簽名算法工具-Signature

  • 簽名算法其實(shí)也是加密算法,它加密后的數(shù)據(jù)具有唯一標(biāo)識(shí)性,就像一個(gè)人的簽名能代表一個(gè)人身份。簽名一般是指用非對(duì)稱加密算法的私鑰來加密明文的過程,生成的密文可以被持有公鑰的人識(shí)別解密,只要你的公鑰是準(zhǔn)確對(duì)應(yīng)無誤的,就能保證你解密的數(shù)據(jù)是來自持有私鑰的一方
  • 如何保證公鑰是正確無誤,沒被篡改的?1:一對(duì)一給你,2:獲取公鑰后通過權(quán)威機(jī)構(gòu)認(rèn)證,相關(guān)過程可以看下之前寫的一篇文章網(wǎng)絡(luò)篇:朋友面試之https認(rèn)證加密過程[1]
  • 支持算法:NONEwithRSA、MD2withRSA、MD5withRSA、SHA512/224withRSA、SHA512/256withRSA、RSASSA-PSS、NONEwithDSA、SHA512withDSA、NONEwithECDSA、SHA512withECDSA、MD5withRSAandMGF1(太多了,選擇列舉幾個(gè))
  • Signature.API示例,配合KeyPairGenerator使用
public static void main(String[] args) throws Exception {
    KeyPair keyPair = generatorRsaKey();
    Signature signature = Signature.getInstance("MD5withRSA");
    signature.initSign(keyPair.getPrivate());
    //加解密數(shù)據(jù)
    byte[] data = "hello world".getBytes();
    //數(shù)據(jù)簽名
    signature.update(data);
    byte[] digest = signature.sign();
    //數(shù)據(jù)解密加驗(yàn)證
    signature.initVerify(keyPair.getPublic());
    signature.update(data);
    System.out.println("驗(yàn)證結(jié)果:"+signature.verify(digest));
}
------------輸出結(jié)果------------------
驗(yàn)證結(jié)果:true

5 常用加密工具類-Cipher

  • 用于加密/解密數(shù)據(jù)。支持各種類型的算法:對(duì)稱加密(例如AES),非對(duì)稱加密(例如RSA)
  • 支持算法:AES、AESWrap、ARCFOUR、Blowfish、DES、DESede、DESedeWrap、ECIES、RSA(太多了,選擇列舉幾個(gè))
  • 示例
public static void main(String[] args) throws Exception {
    KeyPair keyPair = generatorRsaKey();
    Cipher cipher = Cipher.getInstance("RSA");
    // 編碼前設(shè)定編碼方式及密鑰
    cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPrivate());
    //加解密數(shù)據(jù)
    byte[] data = "hello world".getBytes();
    //數(shù)據(jù)簽名
    byte[] enData = cipher.doFinal(data);
    //數(shù)據(jù)解密
    cipher.init(Cipher.DECRYPT_MODE, keyPair.getPublic());
    byte[] newData = cipher.doFinal(enData);
    System.out.println("驗(yàn)證結(jié)果:"+new String(newData));
}
------------輸出結(jié)果------------------
驗(yàn)證結(jié)果:hello world

6 Certificate-證書存儲(chǔ)

  • CertificateFactory:用于創(chuàng)建公鑰證書(Certificate)和證書吊銷列表(CRL)
  • Certificate及其子類X509Certificate
  • CertPath和CertPathBuilder:用于構(gòu)建證書鏈(也稱為證書路徑)
  • CertPathValidator:用于驗(yàn)證證書鏈
  • CRL:證書吊銷列表
  • CertStore:用于存儲(chǔ)檢索證書和CRL
  • CertificateFactory和Certificate的示例
  • 示例
//certificateStream是證書的輸入流
public static PublicKey getPublicKeyByCer(InputStream certificateStream) throws Exception{
    CertificateFactory certificateFactory = CertificateFactory.getInstance("X509");
    Certificate certificate = certificateFactory.generateCertificate(certificateStream);
    return certificate.getPublicKey();
}

7 KeyStore-密鑰證書的實(shí)體類

  • KeyStore用于存儲(chǔ)私鑰和證書(公鑰在證書Certificate里面)
  • 公鑰:是一個(gè)詳細(xì)的實(shí)體的數(shù)字關(guān)聯(lián),并有意讓所有想同這個(gè)實(shí)體發(fā)生信任關(guān)系的其他實(shí)體知道.公共鑰匙用來檢驗(yàn)簽名;
  • 私鑰:是一些數(shù)字,私有和公共鑰匙存在所有用公共鑰匙加密的系統(tǒng)的鑰匙對(duì)中.公共鑰匙用來加密數(shù)據(jù),私有鑰匙用來計(jì)算簽名.公鑰加密的消息只能用私鑰解密,私鑰簽名的消息只能用公鑰檢驗(yàn)簽名。
  • 示例
public static void main(String[] args) throws Exception {
    InputStream certificateStream = null;
    //根據(jù)Certificate生成KeyStore
    CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
    KeyStore keyStore = KeyStore.getInstance("PKCS12");
    keyStore.load(null);
    keyStore.setCertificateEntry("certificate", certificateFactory.generateCertificate(certificateStream));
    //加載jks文件,并生成KeyStore
    KeyStore trustKeyStore = KeyStore.getInstance("jks");
    FileInputStream trustKeyStoreFile = new FileInputStream("/root/trustKeyStore.jks");
    trustKeyStore.load(trustKeyStoreFile, "password".toCharArray());
}

8 java.https加載證書的API

  • KeyManagerFactory、TrustManagerFactory => KeyManager、TrustManager => SSLContext => SSLEngine、SSLSocketFactory、SSLSocket

一般的證書加載過程

  • 用Certificate、KeyStore生成創(chuàng)建KeyManagerFactory和TrustManagerFactory
  • KeyManagerFactory和TrustManagerFactory用來創(chuàng)建KeyManager和TrustManager
  • 而KeyManager和TrustManager用來初始化SSLContext
  • 然后使用SSLContext,創(chuàng)建實(shí)際實(shí)現(xiàn)SSL/TLS協(xié)議的對(duì)象(SSLSocketFactory、SSLSocket或者SSLEngine)
  • SSLSocket和SSLEngine可以直接在通信對(duì)象中使用
  • KeyManager和TrustManager作用:
    • KeyManager負(fù)責(zé)向?qū)Φ榷孙@示使用的憑證(使用的密碼標(biāo)準(zhǔn)、加密算法、證書、公鑰、簽名等)
    • TrustManager負(fù)責(zé)驗(yàn)證從對(duì)等端收到的憑證,驗(yàn)證憑證有多種方式:其中之一是創(chuàng)建CertPath對(duì)象,并讓JDK的內(nèi)置公鑰基礎(chǔ)結(jié)構(gòu)(PKI)框架處理驗(yàn)證。在內(nèi)部,CertPath實(shí)現(xiàn)可能會(huì)創(chuàng)建一個(gè)Signature對(duì)象,并使用它來驗(yàn)證證書鏈中的每個(gè)簽名
  • 示例:生成SSLContext,并使用SSLContext初始化apache-httpClient
public static String postWithSSL(String url, String jsonBody) throws Exception {
    SSLContext sslContext = getSslContext();
    SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(
            sslContext, new String[]{"TLSv1.2""TLSv1.1""TLSv1"}, null,
            SSLConnectionSocketFactory.getDefaultHostnameVerifier());
    RequestConfig config = RequestConfig.custom()
            .setConnectTimeout(3000)
            .setSocketTimeout(3000)
            .build();
    CloseableHttpClient client = HttpClients.custom()
            .setSSLSocketFactory(sslConnectionSocketFactory)
            .setDefaultRequestConfig(config).build();
    HttpPost httpPost = new HttpPost(url);
    //httpPost.setHeaders(headers);
    httpPost.setHeader("Content-Type""application/json; charset=utf-8");
    httpPost.setHeader("Accept""application/json");
    httpPost.setEntity(new StringEntity(jsonBody, StandardCharsets.UTF_8));
    HttpResponse response = client.execute(httpPost);
    HttpEntity responseEntity = response.getEntity();
    String result = EntityUtils.toString(responseEntity, "UTF-8");
    return result;
}
//雙向加密 SSLContext
private static SSLContext getSslContext() throws Exception {
    //自身私鑰
    KeyStore identityKeyStore = KeyStore.getInstance("jks");
    FileInputStream identityKeyStoreFile = new FileInputStream("/root/myServer.jks");
    identityKeyStore.load(identityKeyStoreFile, "password1".toCharArray());
    //服務(wù)端信任證書
    KeyStore trustKeyStore = KeyStore.getInstance("jks");
    FileInputStream trustKeyStoreFile = new FileInputStream("/root/trustKeyStore.jks");
    trustKeyStore.load(trustKeyStoreFile, "password".toCharArray());
    //構(gòu)建SSLContexts
    return SSLContexts.custom()
            .loadKeyMaterial(identityKeyStore, "password1".toCharArray()) // load identity keystore
            .loadTrustMaterial(trustKeyStore, null// load trust keystore
            .build();
}
//雙向加密 SSLContext 方式二
private static SSLContext getSslContext2() throws Exception{
    //自身私鑰
    KeyManagerFactory keyFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
    KeyStore keystore = KeyStore.getInstance("jks");
    keystore.load(new FileInputStream(new File("/root/myServer.jks")), "password".toCharArray());
    keyFactory.init(keystore, "password".toCharArray());
    KeyManager[] keyManagers = keyFactory.getKeyManagers();
    //服務(wù)端信任證書
    TrustManagerFactory trustFactory = TrustManagerFactory.getInstance("SunX509");
    KeyStore tsStore = KeyStore.getInstance("jks");
    tsStore.load(new FileInputStream(new File("/root/trustKeyStore.jks")), "password".toCharArray());
    trustFactory.init(tsStore);
    TrustManager[] trustManagers = trustFactory.getTrustManagers();
    //初始化SSLContext
    SSLContext sslContext = SSLContext.getInstance("TLS");
    sslContext.init(keyManagers, trustManagers, null);
    return sslContext;
}

歡迎指正文中錯(cuò)誤

參考文章

  • JCA-Java加密框架[2]
  • Java加密框架(JCA)簡(jiǎn)要說明[3]
  • Java加密解密之MAC[4]
  • 關(guān)于keyGenerator,KeyPairGenerator,SecretKeyFactory的解析[5]
  • JCA 實(shí)踐記錄——SecretKeyFactory[6]
  • HttpClient 雙向認(rèn)證[7]
  • java內(nèi)置可用加密算法文檔[8]
  • key解析[9]

Reference

[1]

網(wǎng)絡(luò)篇:朋友面試之https認(rèn)證加密過程: https://juejin.cn/post/6918203360315179022

[2]

JCA-Java加密框架: https://www.jianshu.com/p/a8194c237363

[3]

Java加密框架(JCA)簡(jiǎn)要說明: https://www.cnblogs.com/libin6505/p/10442194.html

[4]

Java加密解密之MAC: https://blog.csdn.net/x_san3/article/details/80613605

[5]

關(guān)于keyGenerator,KeyPairGenerator,SecretKeyFactory的解析: https://www.cnblogs.com/jeremy-blog/p/5289731.html

[6]

JCA 實(shí)踐記錄——SecretKeyFactory: https://www.jianshu.com/p/f66a0b93b919

[7]

HttpClient 雙向認(rèn)證: https://blog.csdn.net/xintonghanchuang/article/details/103298943

[8]

java內(nèi)置可用加密算法文檔: https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#KeyGenerator

[9]

key解析: https://www.cnblogs.com/littlefishxu/p/3969180.html

瀏覽 73
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 蜜桃人妻无码AV天堂二区| 91在线无码精品秘入口三人| 精品91在线视频| A级黄色网| 日韩91视频| 美女久久久| 大香蕉国产在线视频| 天堂视频中文在线| 日韩TV| 黄色av免费在线观看| 国产伊人影院| 无码一区二区高清| 麻豆911精一区二区| 中文字幕在线观看1| 学生妹一级J人片内射视频| 深夜福利av| 18成人网站在线观看| 黄色电影一区二区三区| 水蜜桃在线视频| 欧美精品久久久久| 久久综合伊人777777| 乱伦乱码| 91综合在线观看| 日韩无码人妻久久一区二区三区| 婷婷天堂| 韩国精品一区二区| 男人亚洲天堂| 国产成人午夜精品无码区久久麻豆 | 欧美撸一撸| 欲色AV| 91亚洲精品在线| 亚洲乱码在线观看| 婷婷五月成人| 亚洲加勒比久久88色综合| 日本不卡一区二区三区四区| A黄色绿像| 国产黄色片在线观看| www.6969成人片亚洲| 日本中文在线观看| 午夜福利100理论片| 五月丁香婷婷在线观看| 国产成人小视频在线观看| 美女网站黄| 人人妻人人草| 亚洲一区AV| 一级国产欧美成人A片| 尤物在线免费视频| 永久免费AV| 五月激情久久| 亚洲最新无码视频| 天堂8在线19| 日韩欧美综合| 日本一级a片| 亚洲一区在线播放| 91丨国产丨熟女熟女| 亚洲不卡中文字幕| 久热亚洲| 日韩无码电影| 99热高清| 乱伦91视频| 亚洲无码激情在线| 五月天干美女| 亚洲一级黄片| 午夜成人福利电影| 色婷婷综合久久久中文字幕| 亚洲无码成人网站| 丁香成人五月天| JLZZJLZZ亚洲女人| 中文字幕在线免费看线人| 黄a在线| 黄片欧美| 欧美一级黃色A片免费看蜜桃熟了| 先锋av资源在线| 中字无码av| 午夜免费性爱视频| 91性爱视频| 亚洲一区二区成人网站戴套| 天堂综合网| 日韩精品人妻中文字幕| 怡红院男人的天堂| 一区二区三区成人电影| 免费无码婬片AAAA片直播| 特大妓女BBwBBWBBw| 懂色AV一区二区三区国产中文在线| 亚洲AV成人无码一区二区三区| 亚洲一区高清| 亚洲中文无码AV在线| 亚洲日韩一区二区三区四区| 亚洲日操| 日韩精品一区二区三区四区| 国产免费视频69| 日韩欧美一级| 日本Sm/调教/捆绑/紧缚| 国产高清无码免费| 国产做受91一片二片老头| 中文字幕亚洲在线观看| 久久视频免费观看| 亚洲AV无码成人精品区欧洲| 99色在线| 自拍偷拍中文字幕| 久久免费视频精品| 激情AV| 91人人人| 69国产精品成人无码| 亚洲天堂男人| 久久黄色网址| 福利视频亚洲| 无码AV大香线蕉伊人| 尤物最新网址| 婷婷五月天黄色| 97自拍视频| 操逼在线免费观看| 国产精品人妻AⅤ在线看| 日韩成人在线观看视频| 人人看人人草| 丝袜足交视频| www.五月婷婷| 制服丝袜乱伦| 黄片视频免费在线观看| 黄色片网站| 无码免费看| 成人自拍偷拍视频| 大香蕉伊人在线视频| 男人天堂影院| 欧美日日| 精品人妻一区二区三区四区不卡在 | 高清无码不卡在线观看| 日韩一级免费电影| 精品国产偷拍| 三级免费| 国精产品秘成人一区二| 无码少妇视频| 国产精品国产精品国产专区不片| 亚洲免费视频在线| 五月丁香啪| 人人妻人人骑| 天堂亚洲AV无码精品成人| 中文字幕在线观看1| 99精品一区| 男女高清无码| 日韩成人无码特集| 六月丁香五月天| 久久久久久成人无码| 一道本无码免费视频| 在线看一区二区三区| 人人色人人草| 亚洲无码在线精品| 日本黄色影院在线| 91黄色视频在线播放| 人妻AV无码| 亚洲精品中文字幕乱码三区91| 91农村站街老熟女露脸| 操操操影院| 色色9999| 天堂中文字幕在线观看| 久久人人操| 青榴视频免费观看| 五月天色色小说| 中文字幕人成人乱| 成人黃色A片免费看| 免费看毛片的网站| 在线观看视频无码| 国产无码中文| 国产一级a毛一级a做免费高清视频| 2021无码| 99免费视频在线观看| 天天干天天干| 免费的一级A片| 日本一区二区三区视频在线观看| 天天操夜夜操狠狠| 精品日逼| 操逼com| 五月丁香花| 国产无码片| 超碰欧美| 狠狠躁婷婷天天爽综合| 高清无码视频在线| 四虎福利| 日韩欧美手机在线| 中文字幕观看在线| 成人毛片在线观看| 国产亚洲久一区二区| 就爱操逼网| 成人片网站在线观看| 在线成人AV| 麻豆影音先锋| 欧美一区二区三曲的| 大香蕉视频网| 三洞齐开Av在线免费观看| 黄色视频网站日本| 欧美中文字| 亚洲在线中文| 青青国产在线| 在线观看黄色电影| 色婷婷视频| 天天操夜夜操视频免费高清| 久视频在线观看| 国产成人免费在线视频| 玖玖色视频| 伊人黄色电影| 久久黄色免费视频| 男女啪啪免费网站| 久草福利| 777国产盗摄偷窥精品0000| 亚洲成人影音先锋| 女同久久另类99精品国产91| 免费无码进口视频| 日韩人妻精品无码久久| 99re视频播放| 在线免费看A| 又黄又湿的视频| 成年人黄色电影| 一本道中文字幕| 中文字幕在线观看第一页| 麻豆黄网| 美女操b| 免费看黄在线看| 淫五月| 高潮视频在线观看| 欧美激情性爱网站| 五月天综合在线| 亲子伦视频一区二区三区| 国产一区二区三区无码| 日韩性爱在线| 波多野结衣被操| www免费视频| 亚洲精品久久久蜜桃| 三级片无码在线播放| 99热国产| 亚洲日韩国产中文字幕| 黑人巨大翔田千里AⅤ| 国产黄色小电影| 久久精品视频免费| 欧美精品无码久久久精品酒店| 国产区在线视频| 久久一区二区三区四区五区| 色婷| 男女啪网| A级视频免费观看| 中文字幕35页| 婷婷久| 久久久久久国际四虎免费精品视频| 无码中文综合成熟精品AV电影| 精品人妻一区二区三区阅读全文| 日韩肏屄视频| 亚洲色吧| 91丨PORN首页| 97国产高清| 人妻精品一区二区三区| 午夜操一操一级| 日韩人妻系列| 亚洲视频a| 影音av| A片地址| 欧美日韩久久久| 亚洲乱码日产精品BD在线观看| 国产中文字幕在线| 夜夜骑免费视频| 91亚洲免费视频| 中文AV字幕| 无码秘蜜桃一区二区| 亚洲色一| 中文字幕成人A片| 黄色小视频免费看| 国产精品无码毛片| 蜜桃av无码一区三区| 日韩激情无码一区二区| 日韩免费视频| 久久久久久久久黄色| 免费的av网站| 亚洲中文无码视频| 性欧美xxxx| 男人的天堂免费视频| 欧美成人a片| 美女黄色视频永费在线观看网站 | 99视频| 亚洲手机在线| 国产成人在线精品| 国产精品V亚洲精品V日韩精品| 天天添天天操| 日本午夜三级视频| 人人cao| 97操逼| 亚洲激情性爱| 国产免费内射| 麻豆A∨在线| 午夜福利2025| 亚洲高清电影| 日本一级黄色电影| 手机毛片在线播放| 久久综合操| 欧美激情网址| 色婷婷亚洲色| 亚洲电影AV| 探花av| AV口爆| 露脸老熟女91集合| 欧美成人精品欧美一级乱黄| 国产精品毛片VA一区二区三区 | 国产三级片在线免费观看| 人妻丝袜中出北条麻妃| 操逼视频高清无码| 粉粉嫩嫩的18虎白女| 三级片在线观看网站| 国产操逼大片| 91精品久久香蕉国产线看观看| 91精品国产人妻| 成人AV三级片| 色久综合| 三级片无码在线| 中文字幕久久人妻无码精品蜜桃| 日韩在线观看网站| 91九色TS另类国产人妖| 久久成人片| 蜜桃视频成人版网站| 色综合中文字幕| 香蕉久久国产AV一区二区| 99久久9| 亚洲精品第一页| 18禁二区| 亚洲AV成人无码AV小说| 影音先锋成人网| 熟妇偷拍| 免费看的黄色视频| 欧美aaa| 国产高清A片| 亚洲一区av| 北条麻妃中文字幕旡码| 夜夜爽天天爽| 国产综合亚洲精品一区二| 成年人在线播放| 在线视频中文字幕| 黄色操逼片| 92丨九色丨偷拍老熟女| 樱桃码一区二区三区| 99国产热| 天天干夜夜操| 欧美91视频| 久久人妻熟女中文字幕av蜜芽| 青娱乐成人在线视频| 午夜久久久| 一级片黄色电影| 红桃视频无码| 99热这里| 在线播放www| 无码视频一区二区| 日韩V片| 靠逼久久| 久久婷婷无码视频| 国产精品免费观看视频| 天天操人人妻| 亲子伦视频一区二区三区| 老熟女17页一91| 亚洲国产成人一区二区| 无码免费播放| www.re99| 成人欧美一区二区三区黑人免费| av在线无码观看| 日韩人妻在线观看| 妹子色综合| 大香蕉久久久久| 日本色情网| 老湿机福利视频| 日韩在线中文字幕亚洲| 久久久久久无码| 吴梦梦《女教师时间暂停》| 91无码人妻精品一区二区蜜桃| 欧洲三级片| 欧美噜噜| 操逼小电影| 日本AⅤ电影| 透逼视频| 97人妻精品一区二区三区免| 丁香久久| 日韩一区二区三区免费视频| 影音先锋三级| 国产嫩草视频| 中文无码在线播放| 乱伦乱码| 欧美成人综合| 性爱日韩| 996热| 中文字幕日本精品5| 五月婷婷六月丁香| 一级a免一级a做免费线看内裤的注意事项 | 蜜桃传媒一区二区亚洲A| 大香蕉伊人视频| 一本加勒比HEZYO东京热无码| 日本三级视频| 婷婷丁香色五月| 亚洲AV在线观看| 日韩色婷婷| 成人精品视频| 成人精品一区二区区别解析| 中文字幕系列| 天堂а√在线中文在线新版 | 中文字幕人妻互换av久久| 大香蕉尹人在线视频| 成人毛片在线| 五月天婷婷在线视频| 午夜黄色电影| 免费尻屄视频| 爱爱网址| 欧美日韩中文在线| 久操无码视频| 热久久免费| 欧美激情xxx| 91日逼视频| 99av| 加勒比综合在线| 天堂aaa| 91精品国产成人观看| 国产女主播在线| 91东热激情| www.激情五月天| 综合黄色| 久久高清无码视频| 天天日天天草天天干| 国产精品无码怀孕软件| 久久伊思人在| 亚洲激情| 久青草资源福利视频| 精品蜜桃秘一区二区三区观看| 福利网站在线观看| 国产精品一区av| 日日撸夜夜撸| 亚洲码无人客一区二区三区| 九九九在线观看视频| 粉嫩小泬BBBBBB免费| 婷婷V亚洲V丁香月天V日韩V| 精品一区在线| 无码人妻在线播放| 久久中文字幕综合| 成人精品无码免费视频| 午夜福利日本| 亚洲综合色婷婷| 韩国三级HD中文字幕的背景音乐| 永久免费看片视频5355| 最新中文字幕免费MV第一季歌词| AV无码人妻| 色色在线| 精产国品一区二区三区| 五月天色色婷婷| 国产91探花秘入口| 中文字幕性爱电影| 伊人网综合| 少妇bbb| 日无码在线| 无码精品一区二区| 先锋成人av| 国产欧美综合在线三区| 99热热久久| 天天射日| 91综合在线| 99xav| 无码国精品一区二区免费蜜桃| 丁香五月激情视频| 精品国产女人| 久久伊人春色| 欧美一级婬片免费视频华泰老添妇| 日本一级特级毛片视频| 江苏妇搡BBBB搡BBBB-百度| 日韩无码精品电影| 中文字幕一二三四| 日韩A| 国产乱子伦精品免费,| 91AV在线观看视频| 欧美手机在线| 黄网免费| 在线看污| AV中文在线| 无码一区二区在线观看| av天天操| 午夜A片| 国产女人18水真多18精品一级做| 手机看片1024久久| 婷婷色色五月天| 欧美性BBB槡BBB槡BBB| 人人操人人妻人人| 69AV在线| 一区二区三区视频在线| 2026AV天堂网| 日韩免费在线视频| caopro| 成人自拍视频在线| 欧美毛视频| 黄片视频在线免费观看| 桃花岛tⅴ+亚洲品质| 韩日无码人妻| 五月综合久久| 日韩视频中文| 伊人偷拍视频| 99国产在线| 粉嫩av懂色av蜜臀av分享| 国产精品在线免费观看| 老鸭窝av免费入口在线观看| 中文字幕一区二区6页| 九七精品| 亚洲无码在线高清| 国产精品无码在线观看| 操逼在线看| 亚洲第一色播| 成人视频欧美| 九色PORNY自拍视频| 人人免费操| 久久久久99| 亚洲综合无码| 中文AV字幕| 日韩码波多野结衣| 2025天天操夜夜操| 黄视频免费在线观看| 欧美肉大捧一进一出小说| 日一区二区| 午夜成人福利视频在线观看| 久久久噜噜噜久久中文字幕色伊伊| 日韩AV一区二区三区四区| 免费观看成人毛片A片直播千姿| 日本在线免费观看| 中文字幕无码视频在线观看| 蜜桃Av噜噜一区二区三区四区| AV电影免费看| 51妺妺嘿嘿午夜成人A片| 国产成人免费做爰视频| 免费黄色a片| 成人国产片女人爽到高潮| 五月天婷婷视频| 9l农村站街老熟女| 日韩A毛片| 黄网在线观看视频| 影音av| 91在线无码精品秘入口三人 | 国产成人在线免费观看| 国产精品无码在线| 91人妻人人澡人人添人人爽| 蜜臀久久99精品久久一区二区| 美日韩毛片| 麻豆AV在线观看| 国产精品天天狠天天看| 精品吃奶一区二区三区视频| 欧美日逼| 中文字幕国产视频| 国产精品成人在线观看| 久草com| 日韩视频三区| 中文字幕无码人妻| 免费无码进口视频| 久久无码一区二区| 全国男人的天堂网站| XXXX操| 一级黄色片免费看| 激情综合五月| 免费无码又爽又黄又刺激网站| 亚洲婷婷在线观看| 99成人乱码一区二区三区在线| 国产做受91一片二片老头| 国产V在线观看| 亚洲精品一区二区三区无码电影| 黄网站欧美内射| 成人激情视频A极| 波多野结衣AV在线播放| 亚洲国产天堂| 无码视频在线免费播放| 人人色人人草| 亚洲色逼图片| 无码超碰| 中文日韩欧美| 51国产黑料吃瓜在线入口| 国产亲子乱婬一级A片借种| 欧美在线看片| 大鸡巴午夜爽视频电影| 中文无码熟妇人妻AV在线| 亚洲午夜在线观看| 中文字幕无码成人| 国产av日韩av| 中文字幕无码A片久久| 欧洲尤物不卡播放六区| 99操逼| 日本熟妇一区二区三区| 亚洲视频欧美| 女公务员人妻呻吟求饶| 日本精品视频| 丁香五月av| 羽月希无码| 中文字幕亚洲高清| 免费黄色视频网站大全| 国产中文字幕在线免费观看| AV天堂小说网| 字幕一区二区久久人妻网站| 国产精品一区在线观看| 亚洲欧美在线观看视频| 小黄片在线看| 97国产精品人人爽人人做| 国产三级无码视频| 欧美在线操| 黄片www.| 91在线91| 996热| 日韩爱爱| 无码免费婬AV片在线观看| 成人在线超碰| 日韩无码操逼视频| 日韩区一中文字幕a∨| 黄色一级片在线| 熟妇偷拍| 日韩天堂在线播放| 国产人与禽zoz0性伦| 欧美丝袜脚交xxxxBH| 五月丁香综合| 九色91视频| 好色综合| 一区二区网站| 国产玖玖| 国产一区二区三区四区五区在线| 成人视频18+在线观看| 五月丁香六月色| 欧美激情一区二区A片成人牛牛| 色噜噜在线观看| 苍井空无码一区二区三区| 色aV牛牛在线观看| 婷婷视频| 大香蕉福利视频| 天天干天天操天天干| 中文精品字幕人妻熟女| 东方AV在线播放| 国产日产亚洲精品| www.俺去| 欧美性爱导航| 尤物网站在线播放| 鸡巴操骚逼视频| 国产高清第一页| 精品无码AV一区二区三区| 台湾无码精品| 在线观看免费黄视频| 黄色性视频| 国外亚洲成AV人片在线观看| 福利视频网亚洲| 日本操逼视频| 无码天堂| 91啪啪| 国产一级黄色| 久久黄色片| 婷婷综合视频| 97无码人妻| 午夜激情视频在线观看| 黄色免费在线观看视频| 精品九九九九| 日本少妇无码| 五月婷婷一区| 午夜高清无码视频| 日韩欧美A片| 丝袜美腿亚洲综合| 欧美一级婬片AAAA毛片| 操逼福利| 爱搞搞就要搞搞| 黄片日逼| 高清无码在线不卡| 操欧美美女| 黄色直播在线观看| 亚洲无码在线免费视频| 国产激情啪啪| 九九亚洲| 久久精品中文| 91久久香蕉囯产熟女线看蜜桃| 狼友视频在线免费观看| 国产成人视频免费观看| 爱爱视频欧美| 日本高潮视频| 婷婷伊人大香蕉| 一级黄色片在线观看| 精品一区二区三区免费毛片| 色欲一区| a在线免费| 精品视频| 国产人成一区二区三区影院| 大香蕉精品视频在线| 国产色av| 亚洲最大成人网站| 91成人影片| 久久精品欧美| 精品无码国产一区二区三区51安| 97伊人| 亚洲大哥天天干| 欧美日本成人网站入口| 成人黄色视频免费| 看毛片的网站| 国产99页| 亚洲视频日韩在线观看| 亚洲性爱在线| 亚洲婷婷三级成人网| 国产嫩草久久久一二三久久免费观看 | 91久久国产| 性BBwBBwBBwBBw禽| 精品无码人妻| 色墦五月丁香| 极品小仙女69| 日韩人妻午夜| 人人爱人人爽人人操| 青青草社区视频| 亚洲天堂在线免费观看视频| 水蜜桃一区二区三区| 免费尻屄视频| 黄a在线| 欧美成人性爱图片| 欧美黄色免费网站| 国产一级A片久久久免费看快餐| 中文字幕人妻互换av久久| 亚洲无码视频免费在线观看| 自拍偷拍亚洲| 日韩无码中字| 人妻电影亚洲av| 日韩无码专区电影| 欧美一级片免费看| 97超碰网| 黄色操逼片| 大香蕉免费网| 欧美黄色三级视频| 色婷婷AV一区二区三区之e本道| 久久黑人| 国产成人精品无码免费| 欧美成人无码片免费看A片秀色| 豆花视频在线| AV性爱社区| 91九色精品女同系列| 婷婷另类小说| 国产无码高清在线| 亚洲在线第一页| 精品久久电影| 亚洲性视频| 日逼图| 青青草原亚洲| 在线观看高清无码中文字幕| 欧美A一| 无码激情18激情视频| 久久国产精品精品国产色婷婷| 国产性爱自拍视频| 先锋影音成人| 国精品伦一区一区三区有限公司 | www99国产| 成人三级视频在线| 亚洲中文中出| 久久久精品久久久| 九色PORNY蝌蚪自拍视频 | 免费高清无码| 99成人电影| 中文字幕乱在线| 欧美h在线观看| 日韩三级av| 一级片欧美| 黄色毛片在线观看| 国产无套进入免费| 日韩性爱视频在线播放| 国产一级操逼片| 中文字幕牛牛婷婷| JlZZJLZZ亚洲美女18| 日韩无码动漫| 成人黄色毛片| 欧美成人一区免费视频| 国产一级A片在线观看| 老汉av| 婷婷久久在线| 亚洲电影中文字幕| 九九热在线观看| 精品无码在线观看| 国内综合久久| av无码av天天av天天爽| 亚洲日韩三级| 国产情侣在线视频| 大香蕉精品视频在线| 亚洲无码人妻| 欧美综合视频在线观看| 91成人A片| 无码中文AV| 亚洲成人综合在线| 天天做天天爱天天高潮| 美女网站黄a| 亚洲激情国产| jizz日韩| 丰满人妻一区二区三区精品高 | 亚洲一级黄色大片| 亚洲毛片在线| 今天成全在线观看高清| 久久成人免费视频| free性欧美| 亚洲午夜成人精品一区二区| 91无码秘蜜桃一区二区三区-百度| HEZ-502搭讪绝品人妻系列| 四川BBBB擦BBBB| 成人免费内射视频| 欧美被操| 狠狠躁日日躁夜夜躁2022麻豆| 国产乱国产乱300精品| 亚洲激情小说| 3D精品啪啪一区二区免费| 青青久视频| 国产成人无码精品久在线观看| 国产逼| 天天色天天色| 色婷婷欧美在线播放内射| 久久国产乱子伦精品免费午夜... 国产毛片精品一区二区色欲黄A片 | 国产精品久久久久久久久久久久久久久久 | 成人小视频十八禁免费观看| 欧亚一区二区| 大香蕉在线75| 狠狠干影院| www.黄色| 人人色人人草| 91爱在线| 中文字幕一区二区6页| 一区无码| 97精品人人A片免费看| 欧美特级视频| 美女91视频网站| 九九九免费视频| 91久久久久久久91| 91麻花| 视频二区中文字幕| 在线观看中文字幕av| 六月天av| 日逼网站视频| 亚洲av免费在线| 99热超碰| 成人视频黄片| 国产区在线| 国产草逼视频| 北条麻妃一区二区三区-免费免费高清观看 | 一道本无码视频| 日韩毛片一级| jizz99| 俺来也俺去啦欧美www| 少妇做爱特级AAA| 影音先锋av资源网站| 91精品电影18| 岛国av片| 欧美日韩在线视频免费观看| 99在线观看精品视频| 丁香六月婷婷| 中文字幕无码Av在线| 久久国产精品一区二区三区| 日本一级黃色大片看免费| 欧美一级操| 久久精彩免费视频| 啪啪视频最新地址发布页| 一区二区无码视频| 山东乱子伦视频国产| 久久久精品久久久| 熟女人妻人妻の视频| 亚洲成人福利在线| 伊人大香在线| 亚洲AV无码乱码精| 激情婷婷| 99精品网站| 口爆AV| 黄色视频网站免费| 亚洲a在线视频| 午夜福利视频网| 亚洲黄色大片| 国产免费av在线观看| 成人自拍在线| 久久小视频| 波多野无码| 精品无码一区二区三区蜜桃李宗瑞| 激情久久久| 国产剧情一区二区av在线观看| 一级a一级a免费观看免免黄‘/ | 中文字幕一区二区二三区四区| 国产强伦轩免费视频在线| 一道本激情视频| 伊人影院视频| 色五月激情五月| 欧美日韩三级在线| 麻豆黄色| 国产在线激情视频| 91精品91久久久中77777| 99久久99久久精品免费看小说。 | 国家一级A片| 小明成人免费视频| 91国产爽黄在线| 男女高清无码| 精品白浆| 欧美人人操| 婷婷色大师| 91人妻人人爽人人澡人人爽| 91在线精品无码秘入口苹果| 久久久久中文字幕| 久久77777| 精品日韩| 国产18水真多18精品| 91欧美在线| 女BBBBBB女BBB| 国产愉拍91九色国产愉拍| 黄色片A片| 日韩AV一区二区在线观看| 中文在线观看免费视频| 泄火熟妇2-ThePorn| 亚洲一区无码在线观看| 北条麻妃人妻中文字幕91影视| 亚洲天堂中文字幕| 在线视频内射| 色五月婷婷综合| 亚洲精品97|