精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spring Boot3.3 項(xiàng)目數(shù)據(jù)庫(kù)連接使用SM4國(guó)密加密算法進(jìn)行脫敏配置

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù)
本文通過(guò)實(shí)際案例,詳細(xì)介紹了如何在Spring Boot項(xiàng)目中使用SM4國(guó)密加密算法對(duì)數(shù)據(jù)庫(kù)連接信息和用戶數(shù)據(jù)進(jìn)行加密與脫敏處理。我們展示了如何配置加密和解密操作,結(jié)合MyBatis-Plus實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作,并通過(guò)Thymeleaf和Bootstrap構(gòu)建前端頁(yè)面進(jìn)行安全展示。

在現(xiàn)代企業(yè)級(jí)應(yīng)用開(kāi)發(fā)中,數(shù)據(jù)安全問(wèn)題越來(lái)越受到重視。尤其是在處理敏感信息如數(shù)據(jù)庫(kù)連接字符串、用戶名、密碼以及用戶個(gè)人信息(如身份證號(hào))時(shí),如何在保證系統(tǒng)功能正常的前提下對(duì)這些敏感數(shù)據(jù)進(jìn)行有效的保護(hù),已經(jīng)成為了開(kāi)發(fā)人員必須面對(duì)的挑戰(zhàn)。本文將通過(guò)一個(gè)實(shí)際的Spring Boot項(xiàng)目案例,介紹如何使用國(guó)密SM4加密算法對(duì)數(shù)據(jù)庫(kù)連接中的url、username和password等信息進(jìn)行加密處理,同時(shí)對(duì)用戶表中的身份證號(hào)等敏感數(shù)據(jù)進(jìn)行脫敏顯示。

本文將詳細(xì)展示如何配置Spring Boot項(xiàng)目以支持SM4加密算法,如何編寫代碼實(shí)現(xiàn)數(shù)據(jù)加密和解密,以及如何結(jié)合MyBatis-Plus實(shí)現(xiàn)數(shù)據(jù)庫(kù)的CRUD操作,并在前端頁(yè)面進(jìn)行數(shù)據(jù)的展示與脫敏處理。我們將從配置文件的加密解密、后端服務(wù)的實(shí)現(xiàn)到前端視圖的展示,逐步引導(dǎo)讀者構(gòu)建一個(gè)完整的、注重?cái)?shù)據(jù)安全的Spring Boot項(xiàng)目。

運(yùn)行效果:

圖片圖片

若想獲取項(xiàng)目完整代碼以及其他文章的項(xiàng)目源碼,且在代碼編寫時(shí)遇到問(wèn)題需要咨詢交流,歡迎加入下方的知識(shí)星球。

表的DDL語(yǔ)句和插入數(shù)據(jù)的SQL語(yǔ)句

首先,我們需要?jiǎng)?chuàng)建一個(gè)user表,并插入10條用戶數(shù)據(jù)。

-- 創(chuàng)建user表
CREATE TABLE user (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    id_number VARCHAR(18) NOT NULL,
    email VARCHAR(50) NOT NULL,
    phone VARCHAR(15) NOT NULL,
    address VARCHAR(100)
);

-- 插入10條用戶數(shù)據(jù)
INSERT INTO user (name, id_number, email, phone, address) VALUES
('張三', '110101199001011234', 'zhangsan@example.com', '13800138000', '北京市朝陽(yáng)區(qū)'),
('李四', '110102199002021234', 'lisi@example.com', '13800138001', '北京市海淀區(qū)'),
('王五', '110103199003031234', 'wangwu@example.com', '13800138002', '北京市西城區(qū)'),
('趙六', '110104199004041234', 'zhaoliu@example.com', '13800138003', '北京市東城區(qū)'),
('錢七', '110105199005051234', 'qianqi@example.com', '13800138004', '北京市豐臺(tái)區(qū)'),
('孫八', '110106199006061234', 'sunba@example.com', '13800138005', '北京市石景山區(qū)'),
('周九', '110107199007071234', 'zhoujiu@example.com', '13800138006', '北京市通州區(qū)'),
('吳十', '110108199008081234', 'wushi@example.com', '13800138007', '北京市大興區(qū)'),
('鄭十一', '110109199009091234', 'zhengshiyi@example.com', '13800138008', '北京市昌平區(qū)'),
('王十二', '110110199010101234', 'wangshier@example.com', '13800138009', '北京市房山區(qū)');

引入SM4國(guó)密加密算法的依賴

在Spring Boot項(xiàng)目中,我們首先需要在pom.xml文件中引入必要的依賴。

<?xml versinotallow="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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.3.3</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.icoderoad</groupId>
	<artifactId>SM4Encryption</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>SM4Encryption</name>
	<description>Demo project for Spring Boot</description>
	
	<properties>
		<java.version>17</java.version>
		<mybatis-spring.version>3.0.3</mybatis-spring.version>
		<mybatis-plus-boot-starter.version>3.5.7</mybatis-plus-boot-starter.version>
		<aliyun-java-sdk-cor.version>4.5.0</aliyun-java-sdk-cor.version>
		<bootstrap.version>5.1.3</bootstrap.version>
		<jquery.version>3.6.0</jquery.version>
	</properties>
	<dependencies>
		<!-- Spring Boot 依賴 -->
	    <dependency>
	        <groupId>org.springframework.boot</groupId>
	        <artifactId>spring-boot-starter-web</artifactId>
	    </dependency>
	   <!-- 數(shù)據(jù)庫(kù)驅(qū)動(dòng)依賴 -->
	    <dependency>
	        <groupId>com.mysql</groupId>
	        <artifactId>mysql-connector-j</artifactId>
	        <scope>runtime</scope>
	    </dependency>
	     <!-- MyBatis-Plus 依賴 -->
	    <dependency>
	        <groupId>com.baomidou</groupId>
	        <artifactId>mybatis-plus-boot-starter</artifactId>
	        <version>${mybatis-plus-boot-starter.version}</version>
	    </dependency>
	     <dependency>
	          <groupId>org.mybatis</groupId>
	          <artifactId>mybatis-spring</artifactId>
	          <version>${mybatis-spring.version}</version>
	      </dependency>
	    <!-- SM4 加密算法依賴 -->
	    <dependency>
	        <groupId>com.aliyun</groupId>
	        <artifactId>aliyun-java-sdk-core</artifactId>
	        <version>${aliyun-java-sdk-cor.version}</version>
	    </dependency>
	  	<dependency>
		        <groupId>org.projectlombok</groupId>
		        <artifactId>lombok</artifactId>
		        <optional>true</optional>
		    </dependency>
	    <!-- Thymeleaf 依賴 -->
	    <dependency>
	        <groupId>org.springframework.boot</groupId>
	        <artifactId>spring-boot-starter-thymeleaf</artifactId>
	    </dependency>
	    <!-- Bootstrap 和 jQuery -->
	    <dependency>
	        <groupId>org.webjars</groupId>
	        <artifactId>bootstrap</artifactId>
	        <version>${bootstrap.version}</version>
	    </dependency>
	    <dependency>
	        <groupId>org.webjars</groupId>
	        <artifactId>jquery</artifactId>
	        <version>${jquery.version}</version>
	    </dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

配置SM4加密算法

在application.yml文件中,我們可以配置SM4加密的相關(guān)參數(shù)。

sm4:
  key: "37507d4cb936fdfb5dbb12a9a3983733" # SM4加密的密鑰
  iv: "a7ae2a65d41fa7f98aec3579b8ec5a3c"   # SM4的初始化向量
  algorithm: "SM4"      # 加密算法
  mode: "CBC"           # 工作模式
  padding: "PKCS5Padding" # 填充模式

spring:
  datasource:
    url: ENC(sXjrlmJi+pBmt5ViI6uLAJ+teKmEfIPoJ5INkHEO2NtWcQ53zdATRyC4X+jru45oiaPjE74e+uLPgY/jHFy21iCVRnNpOFh5fHxn6NgF+04=)
    username: ENC(vB/qydt/80xm7Dxu48i/mA==)
    password: ENC(vB/qydt/80xm7Dxu48i/mA==)

實(shí)現(xiàn)SM4加密和解密工具類

package com.icoderoad.SM4Encryption.util;

import java.security.Security;
import java.util.Base64;

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.springframework.util.Base64Utils;

public class SM4Util {
	
	static {
        Security.addProvider(new BouncyCastleProvider());
    }

    private static final String ALGORITHM_NAME = "SM4";
    private static final String ALGORITHM_NAME_CBC_PADDING = "SM4/CBC/PKCS5Padding";

    /**
     * SM4加密
     * @param plainText 明文
     * @param key 密鑰
     * @param iv 向量
     * @return 加密后的密文
     */
    public static String encrypt(String plainText, String key, String iv) throws Exception {
        Cipher cipher = Cipher.getInstance(ALGORITHM_NAME_CBC_PADDING);
        SecretKeySpec keySpec = createKey(key);
        IvParameterSpec ivSpec = createIv(iv);
        cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
        byte[] encrypted = cipher.doFinal(plainText.getBytes());
        return Base64.getEncoder().encodeToString(encrypted);
    }

    /**
     * SM4解密
     * @param cipherText 密文
     * @param key 密鑰
     * @param iv 向量
     * @return 解密后的明文
     */
    public static String decrypt(String cipherText, String key, String iv) throws Exception {
        Cipher cipher = Cipher.getInstance(ALGORITHM_NAME_CBC_PADDING);
        if (cipherText.startsWith("ENC(") && cipherText.endsWith(")")) {
        	cipherText = cipherText.substring(4, cipherText.length() - 1);
        }
       
        SecretKeySpec keySpec = createKey(key);
        IvParameterSpec ivSpec = createIv(iv);
        cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
        byte[] decrypted = cipher.doFinal(Base64.getDecoder().decode(cipherText));
        return new String(decrypted);
    }
    
    private static SecretKeySpec createKey(String key) {
        byte[] keyBytes = key.getBytes();
        byte[] finalKey = new byte[16];
        System.arraycopy(keyBytes, 0, finalKey, 0, Math.min(keyBytes.length, 16));
        return new SecretKeySpec(finalKey, "SM4");
    }

    private static IvParameterSpec createIv(String iv) {
        byte[] ivBytes = iv.getBytes();
        byte[] finalIv = new byte[16];
        System.arraycopy(ivBytes, 0, finalIv, 0, Math.min(ivBytes.length, 16));
        return new IvParameterSpec(finalIv);
    }
}

在項(xiàng)目中應(yīng)用SM4加密

生成加密后的值

為了生成加密后的url、username和password,可以使用以下測(cè)試代碼來(lái)生成這些值。

package com.icoderoad.SM4Encryption;

import com.icoderoad.SM4Encryption.util.SM4Util;

public class SM4EncryptionTest {

	 public static void main(String[] args) throws Exception {
	        String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false";
	        String username = "root";
	        String password = "root";

	        String key = "37507d4cb936fdfb5dbb12a9a3983733";
	        String iv = "a7ae2a65d41fa7f98aec3579b8ec5a3c";

	        System.out.println("加密后的URL: " + SM4Util.encrypt(url, key, iv));
	        System.out.println("加密后的用戶名: " + SM4Util.encrypt(username, key, iv));
	        System.out.println("加密后的密碼: " + SM4Util.encrypt(password, key, iv));
	    }
	 
}

運(yùn)行上述代碼后,得到加密后的url、username和password,將這些值更新到application.yml中。

我們可以在Spring Boot項(xiàng)目中使用@Value注解將加密后的數(shù)據(jù)庫(kù)密碼解密并應(yīng)用于數(shù)據(jù)源配置。

package com.icoderoad.SM4Encryption.conf;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.icoderoad.SM4Encryption.util.SM4Util;
import com.zaxxer.hikari.HikariDataSource;

@Configuration
public class DataSourceConfig {

    @Value("${spring.datasource.url}")
    private String encryptedUrl;

    @Value("${spring.datasource.username}")
    private String encryptedUsername;

    @Value("${spring.datasource.password}")
    private String encryptedPassword;

    @Value("${sm4.key}")
    private String key;

    @Value("${sm4.iv}")
    private String iv;

    @Bean
    public DataSource dataSource() throws Exception {
        HikariDataSource dataSource = new HikariDataSource();
        dataSource.setJdbcUrl(SM4Util.decrypt(encryptedUrl, key, iv));
        dataSource.setUsername(SM4Util.decrypt(encryptedUsername, key, iv));
        dataSource.setPassword(SM4Util.decrypt(encryptedPassword, key, iv));
        return dataSource;
    }
}

User實(shí)體類

package com.icoderoad.SM4Encryption.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("user")
public class User {
    @TableId
    private Long id;
    private String name;
    private String idNumber;
    private String email;
    private String phone;
    private String address;
    
    @TableField(exist = false)
    private String sensitiveIdNumber;

    public String getSensitiveIdNumber() {
        return idNumber.replaceAll("(\\d{6})\\d{8}(\\d{4})", "$1****$2");
    }
}

UserMapper接口

package com.icoderoad.SM4Encryption.mapper;

import org.apache.ibatis.annotations.Mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.icoderoad.SM4Encryption.entity.User;

@Mapper
public interface UserMapper extends BaseMapper<User> {
}

UserService接口

package com.icoderoad.SM4Encryption.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.icoderoad.SM4Encryption.entity.User;

public interface UserService extends IService<User> {
}

UserServiceImpl類

package com.icoderoad.SM4Encryption.service.impl;

import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.icoderoad.SM4Encryption.entity.User;
import com.icoderoad.SM4Encryption.mapper.UserMapper;
import com.icoderoad.SM4Encryption.service.UserService;

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

我們需要?jiǎng)?chuàng)建一個(gè)控制器類來(lái)處理前端視圖頁(yè)面的請(qǐng)求,并將數(shù)據(jù)傳遞給視圖頁(yè)面進(jìn)行展示。

UserController類

package com.icoderoad.SM4Encryption.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import com.icoderoad.SM4Encryption.entity.User;
import com.icoderoad.SM4Encryption.service.UserService;

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/")
    public String listUsers(Model model) {
        List<User> users = userService.list();
        model.addAttribute("users", users);
        return "index";
    }
}

前端展示頁(yè)面與數(shù)據(jù)脫敏

前端頁(yè)面使用Thymeleaf模板引擎,并結(jié)合Bootstrap進(jìn)行數(shù)據(jù)展示和脫敏處理。

在 src/main/resources/templates/index.html 中創(chuàng)建一個(gè)簡(jiǎn)單的前端頁(yè)面:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>用戶數(shù)據(jù)</title>
    <link href="/webjars/bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <script src="/webjars/jquery/jquery.min.js"></script>
    <script src="/webjars/bootstrap/js/bootstrap.bundle.min.js"></script>
     <style>
     	.container{
     		text-align: center;
     	}
         thead th {
             background-color: #007bff;
             color: white;
         }
         tbody tr:nth-child(even) {
             background-color: #f8f9fa;
         }
         .table {
         	margin: 20px auto;
         	width: 80%;
         }
         tr{
         	height: 30px;
         }
     </style>
</head>
<body>
    <div class="container  mt-5">
        <h2>用戶數(shù)據(jù)</h2>
        <table class="table table-bordered">
            <thead>
                <tr>
                    <th>ID</th>
                    <th>姓名</th>
                    <th>身份證號(hào)</th>
                    <th>郵箱</th>
                    <th>電話</th>
                    <th>地址</th>
                </tr>
            </thead>
            <tbody>
                <tr th:each="user : ${users}">
                    <td th:text="${user.id}"></td>
                    <td th:text="${user.name}"></td>
                    <td th:text="${user.sensitiveIdNumber}"></td>
                    <td th:text="${user.email}"></td>
                    <td th:text="${user.phone}"></td>
                    <td th:text="${user.address}"></td>
                </tr>
            </tbody>
        </table>
    </div>
</body>
</html>

總結(jié)

本文通過(guò)實(shí)際案例,詳細(xì)介紹了如何在Spring Boot項(xiàng)目中使用SM4國(guó)密加密算法對(duì)數(shù)據(jù)庫(kù)連接信息和用戶數(shù)據(jù)進(jìn)行加密與脫敏處理。我們展示了如何配置加密和解密操作,結(jié)合MyBatis-Plus實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作,并通過(guò)Thymeleaf和Bootstrap構(gòu)建前端頁(yè)面進(jìn)行安全展示。

通過(guò)本文,大家可以掌握如何在Spring Boot中集成加密算法,并將其應(yīng)用于實(shí)際項(xiàng)目中,提升數(shù)據(jù)安全性。希望本文為大家在處理敏感信息時(shí)提供了實(shí)用的指導(dǎo),幫助構(gòu)建更安全的企業(yè)級(jí)應(yīng)用程序。

責(zé)任編輯:武曉燕 來(lái)源: 路條編程
相關(guān)推薦

2025-03-28 04:10:00

2023-06-26 00:30:51

2024-08-26 09:15:55

RedissonMyBatisSpring

2024-12-31 08:00:00

SpringBoot開(kāi)發(fā)加密

2025-04-17 03:33:00

SpringSQL動(dòng)態(tài)查詢

2025-02-20 08:21:36

2024-09-02 08:12:32

Spring策略MyBatis

2024-08-29 08:23:22

EasyOCRSpring文字識(shí)別

2025-01-26 00:00:35

2020-10-26 19:20:08

Linux國(guó)密算法加密

2023-10-16 19:05:20

2024-10-14 13:26:42

2015-02-26 09:21:42

Jenkins數(shù)據(jù)庫(kù)加密

2023-08-01 07:24:05

2009-08-13 18:12:11

C#數(shù)據(jù)加密

2015-06-23 11:11:55

2025-06-04 02:15:00

數(shù)據(jù)庫(kù)連接方式JDBC

2013-10-17 13:20:34

2017-12-27 15:16:35

Spring BootFlyway數(shù)據(jù)庫(kù)

2009-08-04 11:08:33

ASP.NET數(shù)據(jù)加密
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

有码一区二区三区| 欧美在线亚洲综合一区| 疯狂做受xxxx高潮欧美日本| 日本在线免费观看一区| 88av在线视频| 在线欧美亚洲| 最新日韩中文字幕| 国产精品成人免费一区久久羞羞| sm在线播放| 欧美激情综合网| 91久久精品国产91久久性色tv| 热久久99这里有精品| 欧美精品一区二区三区三州| 国产51人人成人人人人爽色哟哟| 国产一区二区在线观看视频| 国模私拍一区二区三区| 无码少妇一区二区| 51亚洲精品| 欧美调教femdomvk| 老太脱裤子让老头玩xxxxx| 在线毛片网站| 91网站视频在线观看| 亚洲精品欧美日韩专区| 午夜精品久久久久久久蜜桃| 亚洲一级黄色| 久久在线精品视频| 亚洲av无码国产精品麻豆天美| 亚洲国产欧美国产第一区| 色一情一乱一乱一91av| 妺妺窝人体色www看人体| 国产高清视频免费最新在线| 不卡在线观看av| 欧美日韩在线视频一区二区| 精品一区二区电影| 午夜激情影院在线观看| 亚洲第一二三四区| 激情久久av一区av二区av三区| 香蕉视频在线网址| 成人全视频高清免费观看| 不卡一区二区在线| 国产传媒一区二区| www久久久com| 国产另类ts人妖一区二区| 国产精品普通话| 男人天堂2024| 久久精品一区| 欧美最顶级丰满的aⅴ艳星| 久久久久久免费观看| 欧美一区二区三区久久精品茉莉花 | 亚洲欧洲三级| 国产福利片在线| 国产视频一区二区在线观看| 麻豆av一区二区三区| 天堂网av在线播放| 成人黄页毛片网站| 国产精品国产亚洲精品看不卡15 | 美美哒免费高清在线观看视频一区二区| 日本欧美国产在线| 亚洲不卡在线视频| 天堂va蜜桃一区二区三区漫画版 | 日韩成人免费av| 欧美午夜精品久久久久久超碰| 亚洲五月天综合| 欧美影视资讯| 丰满少妇久久久久久久| 亚洲自拍另类综合| 亚洲乱码一区二区三区| 一级毛片视频在线| 亚洲日穴在线视频| 老司机激情视频| 91超碰免费在线| 黑人巨大精品欧美一区免费视频| av免费播放网址| 暖暖成人免费视频| 欧美日韩一区二区三区不卡 | 精品在线视频观看| 国产精品日本| 国产精品久久久久久久久久99| 中文无码精品一区二区三区| 国产一区二区影院| 国产精品久久久久久久天堂第1集| 三级网站在线看| 国产婷婷色一区二区三区四区 | 亚洲有吗中文字幕| 欧美精品videosex极品1| 亚洲精品国产精品乱码| 日韩在线播放一区二区| 91在线高清视频| 亚洲日本中文字幕在线| 国产精品蜜臀在线观看| 国产精品久久久影院| 麻豆理论在线观看| 欧美日韩一级黄| 精品国产乱码久久久久夜深人妻| 性欧美lx╳lx╳| www.亚洲成人| 国产成人免费观看视频| 卡一卡二国产精品| 国产一区二区无遮挡| h视频在线免费| 亚洲永久免费视频| www.日本xxxx| 亚洲一区二区在线免费| 全国精品免费看| 社区色欧美激情 | 国产在线一二区| 免费观看30秒视频久久| 国产一区二区免费电影| 69av亚洲| 欧美日韩国产一中文字不卡| 色一情一区二区三区| 亚洲国产最新| 欧美激情在线观看| 亚洲视频一区二区三区四区| 不卡在线视频中文字幕| 最新黄色av网站| 深夜成人影院| 亚洲黄在线观看| 国产精品嫩草影院俄罗斯 | 国产第一页视频| 亚洲码欧美码一区二区三区| 中文日韩在线观看| av大片在线免费观看| 国产精品一区二区久久精品爱涩| 日韩精品中文字幕在线| 91久久久精品| 欧美精品情趣视频| 亚洲天堂五月天| 成人手机在线视频| eeuss中文| 欧洲成人一区| 亚洲美女性视频| 福利一区二区三区四区| 国产成人av影院| 中文字幕精品在线播放| 91成人短视频在线观看| 中文字幕日韩欧美| 久久精品偷拍视频| 久久在线观看免费| 人妻少妇被粗大爽9797pw| youjizz欧美| 欧美成人免费在线视频| 99热这里只有精品在线| 亚洲同性同志一二三专区| 无限资源日本好片| 欧美日韩性在线观看| 国产v综合ⅴ日韩v欧美大片| 日本一本在线视频| 黄色片网站免费在线观看| 国产精品国模大尺度视频| 午夜视频在线瓜伦| 国产精品三级| 国产精品高潮呻吟视频| 国产一级二级三级在线观看| 日韩欧美国产视频| 欧美黄色一级生活片| 久久久久国产一区二区| 欧美一区二区综合| 日本在线视频一区二区| 中文亚洲视频在线| 一级片aaaa| 亚洲美女区一区| 性一交一黄一片| 欧美国产另类| 精品国产一区二区三| 乡村艳史在线观看| 亚洲一区第一页| 中文字幕视频一区二区| 国产精品成人一区二区三区夜夜夜| 国内自拍第二页| 黄色亚洲在线| 久久99精品久久久久久久青青日本| 国产欧美一区二区三区精品酒店| 亚洲天堂色网站| 亚洲专区在线播放| 亚洲精品乱码久久久久| 亚洲av无码一区二区三区网址 | 亚洲在线观看av| 伊人性伊人情综合网| 日本黄色免费观看| 视频一区二区三区入口| 色呦呦网站入口| 卡通动漫国产精品| 国产精品久久久久久久久久尿| 免费看a在线观看| 精品国产乱码久久久久久免费| 影音先锋在线国产| 椎名由奈av一区二区三区| 久久久久久久人妻无码中文字幕爆| 亚洲欧美视频| 色欧美88888久久久久久影院| 久久艹国产精品| 精品一区在线| 91丨九色丨国产在线| 日本不卡免费高清视频在线| 最近中文字幕2019免费| 亚洲精品久久久久久动漫器材一区| 精品人伦一区二区三区蜜桃网站| 刘亦菲国产毛片bd| 99久久99久久精品国产片果冻| 高清一区二区视频| 亚洲性感美女99在线| 亚洲不卡中文字幕| 日本在线成人| 国产精品免费看久久久香蕉| 91破解版在线观看| 久久久精品中文字幕| 国产综合在线观看| 精品日韩欧美在线| 91国偷自产中文字幕久久| 精品欧美一区二区三区| 欧美精品乱码视频一二专区| 国产三级一区二区三区| 成人在线视频免费播放| 国产在线精品不卡| wwwwww.色| 乱人伦精品视频在线观看| 日韩久久久久久久久久久久| 久久精品国产大片免费观看| 欧美日韩电影一区二区| 动漫av一区| 91超碰rencao97精品| 国产欧美自拍| 日本伊人精品一区二区三区介绍| heyzo中文字幕在线| 北条麻妃99精品青青久久| 激情小说 在线视频| 亚洲电影免费观看高清完整版在线观看| 国产精品久久欧美久久一区| 欧美亚洲一区三区| 少妇久久久久久久| 色综合久久久久综合体桃花网| 国产在线综合网| 亚洲一区二区三区视频在线播放 | 精品久久美女| 欧美人与物videos另类| 国产尤物视频在线观看| 亚洲一区激情| 青青青青草视频| 精品电影一区| 国产中文字幕乱人伦在线观看| 91精品国产成人观看| 超碰免费在线公开| 欧美电影免费观看高清| 亚洲一区二区三区欧美| 国产精品一国产精品| 欧美凹凸一区二区三区视频| 青青操综合网| 久久精品国产美女| 免费av一区二区三区四区| 久久久久久久免费| 美女久久久久| 欧美一二三四五区| 国产成人1区| 天堂一区二区三区 | 国产一区二区三区在线观看免费视频| 岛国毛片在线播放| 极品尤物av久久免费看| www.久久久久久久久久久| 国产一区二区不卡在线| 免费高清视频在线观看| 成人丝袜高跟foot| 成人影视免费观看| 国产亚洲精品aa| 一本一本久久a久久| 亚洲精品老司机| 日韩黄色精品视频| 色视频欧美一区二区三区| 欧美高清69hd| 欧美一级片在线| 亚洲国产精品久久久久爰性色| 亚洲缚视频在线观看| 日韩私人影院| 最好看的2019年中文视频| 国产福利视频在线| 97久久国产精品| 午夜激情成人网| 国产美女精品视频| 77成人影视| 欧美日本韩国在线| 一区二区日韩欧美| www..com日韩| 日韩av网站在线观看| 欧美体内she精高潮| 91丨porny丨蝌蚪视频| 毛片久久久久久| 亚洲制服丝袜一区| 特级西西444www大胆免费看| 欧美一区二区三区视频在线观看| 性生活三级视频| 亚洲视频日韩精品| 在线视频中文字幕第一页| 欧美亚洲在线视频| 日韩城人网站| 免费成人av网站| 欧美在线日韩| 性生交免费视频| 成人美女在线视频| 国产白丝一区二区三区 | av在线免费观看国产| 日韩avvvv在线播放| 久久无码专区国产精品s| 欧美精彩视频一区二区三区| 精品无码人妻一区二区三| 欧美色精品在线视频| 色一情一乱一区二区三区| 日韩在线观看网站| 欧美xxx视频| 成人精品一二区| 手机在线电影一区| 日本成年人网址| 成人一二三区视频| 欧美xxxooo| 欧美综合在线视频| 欧美熟女一区二区| 美女少妇精品视频| 国产精品久久久久久妇女| 国产一区免费视频| 欧美在线免费一级片| 女同激情久久av久久| 国产午夜精品久久久久久免费视| 国产欧美日韩另类| 日韩女优av电影| 精品美女在线观看视频在线观看| 国产精品久久久久9999| 图片婷婷一区| 国产精品久久久久7777| 国产精品 日产精品 欧美精品| 国产精品无码无卡无需播放器| 岛国av在线不卡| 好吊视频一区二区三区| 久久91精品国产91久久久| 亚洲热av色在线播放| 色爱区成人综合网| 久久先锋资源| 欧美bbbbb性bbbbb视频| 精品国产鲁一鲁一区二区张丽| 亚洲国产综合网| 久久99精品视频一区97| 国产精品免费精品自在线观看 | 日本成a人片在线观看| 国产精品福利网| 国产剧情在线观看一区| 色婷婷综合久久久久中文字幕| 99久久国产综合色|国产精品| 国产成人精品亚洲男人的天堂| 精品国产青草久久久久福利| 免费在线国产视频| 国产福利一区二区三区在线观看| 欧美久久九九| 久久久久99人妻一区二区三区| 一区二区三区影院| 国精品人妻无码一区二区三区喝尿| 欧美高清不卡在线| www.爱久久| 国产l精品国产亚洲区久久| 久久免费精品国产久精品久久久久| 久久久久女人精品毛片九一| 亚洲精品综合精品自拍| 桃子视频成人app| 亚洲一区三区电影在线观看| 经典三级在线一区| 欧美成人aaa片一区国产精品| 精品久久免费看| 这里有精品可以观看| 视频一区国产精品| 国内精品写真在线观看| 国产波霸爆乳一区二区| 亚洲第一男人av| 亚洲成人看片| av电影一区二区三区| 国产成人精品综合在线观看| 日韩av一二三区| 在线观看欧美日韩国产| 国产成人免费视频网站视频社区| 妺妺窝人体色www看人体| 91在线一区二区| 中文字幕一区二区三区四区视频 | 欧美日韩在线观看一区| 免费精品视频在线| 九九热精彩视频| 亚洲乱码国产乱码精品精天堂 | 亚洲区第一页| 欧美性猛交xxxx乱| 51精品国自产在线| 日本蜜桃在线观看视频| 亚洲一区bb| 国产ts人妖一区二区| 日本中文字幕第一页| 久久这里有精品视频| 亚洲动漫精品| www.污网站| 欧美午夜丰满在线18影院| 激情视频在线观看| 久久久99爱| 国产美女一区二区三区| youjizz在线视频| 美日韩丰满少妇在线观看| 国内精品久久久久久久久电影网 | 色诱女教师一区二区三区|