diff --git a/src/main/java/edu/bjtu/groupone/backend/BackendApplication.java b/src/main/java/edu/bjtu/groupone/backend/BackendApplication.java
index 1cc2086..e60b1d5 100644
--- a/src/main/java/edu/bjtu/groupone/backend/BackendApplication.java
+++ b/src/main/java/edu/bjtu/groupone/backend/BackendApplication.java
@@ -15,5 +15,4 @@
     public static void main(String[] args) {
         SpringApplication.run(BackendApplication.class, args);
     }
-
 }
diff --git a/src/main/java/edu/bjtu/groupone/backend/api/UserController.java b/src/main/java/edu/bjtu/groupone/backend/api/UserController.java
index 1e2746f..d5c6775 100644
--- a/src/main/java/edu/bjtu/groupone/backend/api/UserController.java
+++ b/src/main/java/edu/bjtu/groupone/backend/api/UserController.java
@@ -85,7 +85,7 @@
      */
     @Operation(
             summary = "用户注册",
-            description = "注册新用户，必须提供用户名、邮箱、验证码、密码和身份证号码",
+            description = "注册新用户，必须提供用户名、邮箱、验证码、密码",
             responses = {
                     @ApiResponse(
                             responseCode = "200",
@@ -116,7 +116,6 @@
         String email = request.getEmail();
         String code = request.getVerificationCode();
         String pwd = request.getPassword();
-        String idNumStr = request.getIdentificationNumber();
 
         // 验证验证码
         if (!userService.verifyCode(email, code)) {
@@ -134,19 +133,11 @@
             return Result.error("用户名已被占用");
         }
 
-        // 验证身份证号码
-        int idNum = Integer.parseInt(idNumStr);
-        if (userService.isIdentificationNumberExists(idNum)) {
-            return Result.error("身份证号码已被注册");
-        }
-
         // 创建新用户
         User newUser = new User();
         newUser.setUsername(username);
         newUser.setEmail(email);
         newUser.setPassword(pwd);
-        newUser.setIdentificationNumber(idNum);
-
         userService.register(newUser);
         return Result.success("注册成功");
     }
diff --git a/src/main/java/edu/bjtu/groupone/backend/domain/dto/RegisterRequest.java b/src/main/java/edu/bjtu/groupone/backend/domain/dto/RegisterRequest.java
index fd4cc5a..3e6d2cb 100644
--- a/src/main/java/edu/bjtu/groupone/backend/domain/dto/RegisterRequest.java
+++ b/src/main/java/edu/bjtu/groupone/backend/domain/dto/RegisterRequest.java
@@ -28,10 +28,4 @@
     @Size(min = 6, message = "密码长度至少为6位")
     @Schema(description = "用户密码", required = true, example = "password123")
     private String password;
-
-    @NotNull(message = "身份证号码不能为空")
-    @Pattern(regexp = "^[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}(\\d|X|x)$", 
-             message = "请输入有效的身份证号码")
-    @Schema(description = "用户身份证号码", required = true, example = "110101199001011234")
-    private String identificationNumber;
 }    
\ No newline at end of file
diff --git a/src/main/java/edu/bjtu/groupone/backend/domain/entity/User.java b/src/main/java/edu/bjtu/groupone/backend/domain/entity/User.java
index 2e4ddef..6db1f7f 100644
--- a/src/main/java/edu/bjtu/groupone/backend/domain/entity/User.java
+++ b/src/main/java/edu/bjtu/groupone/backend/domain/entity/User.java
@@ -17,7 +17,6 @@
     private String role;
     private String profilePic;
     private String registrationDate;
-    private int identificationNumber;
     private String avatar;// 头像
     private boolean isfollowed = false;
 }
