Skip to content
This repository was archived by the owner on May 5, 2025. It is now read-only.

Commit cba80be

Browse files
committed
fix some bugs: current md5 is not unique
1 parent e618314 commit cba80be

File tree

3 files changed

+29
-120
lines changed

3 files changed

+29
-120
lines changed

pom.xml

Lines changed: 5 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
<name>DictSystemInJava</name>
4242

4343
<properties>
44-
<spring.version>4.3.9.RELEASE</spring.version>
4544
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4645
<junit.version>5.11.2</junit.version>
4746
<maven.compiler.source>20</maven.compiler.source>
@@ -80,106 +79,6 @@
8079
<artifactId>jcurand</artifactId>
8180
<version>11.6.1</version>
8281
</dependency>
83-
<dependency>
84-
<groupId>org.springframework</groupId>
85-
<artifactId>spring-aop</artifactId>
86-
<version>${spring.version}</version>
87-
</dependency>
88-
<dependency>
89-
<groupId>org.springframework</groupId>
90-
<artifactId>spring-aspects</artifactId>
91-
<version>${spring.version}</version>
92-
</dependency>
93-
<dependency>
94-
<groupId>org.springframework</groupId>
95-
<artifactId>spring-beans</artifactId>
96-
<version>${spring.version}</version>
97-
</dependency>
98-
<dependency>
99-
<groupId>org.springframework</groupId>
100-
<artifactId>spring-context</artifactId>
101-
<version>${spring.version}</version>
102-
</dependency>
103-
<dependency>
104-
<groupId>org.springframework</groupId>
105-
<artifactId>spring-context-support</artifactId>
106-
<version>${spring.version}</version>
107-
</dependency>
108-
<dependency>
109-
<groupId>org.springframework</groupId>
110-
<artifactId>spring-core</artifactId>
111-
<version>${spring.version}</version>
112-
</dependency>
113-
<dependency>
114-
<groupId>org.springframework</groupId>
115-
<artifactId>spring-expression</artifactId>
116-
<version>${spring.version}</version>
117-
</dependency>
118-
<dependency>
119-
<groupId>org.springframework</groupId>
120-
<artifactId>spring-instrument</artifactId>
121-
<version>${spring.version}</version>
122-
</dependency>
123-
<dependency>
124-
<groupId>org.springframework</groupId>
125-
<artifactId>spring-instrument-tomcat</artifactId>
126-
<version>${spring.version}</version>
127-
</dependency>
128-
<dependency>
129-
<groupId>org.springframework</groupId>
130-
<artifactId>spring-jdbc</artifactId>
131-
<version>${spring.version}</version>
132-
</dependency>
133-
<dependency>
134-
<groupId>org.springframework</groupId>
135-
<artifactId>spring-jms</artifactId>
136-
<version>${spring.version}</version>
137-
</dependency>
138-
<dependency>
139-
<groupId>org.springframework</groupId>
140-
<artifactId>spring-messaging</artifactId>
141-
<version>${spring.version}</version>
142-
</dependency>
143-
<dependency>
144-
<groupId>org.springframework</groupId>
145-
<artifactId>spring-orm</artifactId>
146-
<version>${spring.version}</version>
147-
</dependency>
148-
<dependency>
149-
<groupId>org.springframework</groupId>
150-
<artifactId>spring-oxm</artifactId>
151-
<version>${spring.version}</version>
152-
</dependency>
153-
<dependency>
154-
<groupId>org.springframework</groupId>
155-
<artifactId>spring-test</artifactId>
156-
<version>${spring.version}</version>
157-
</dependency>
158-
<dependency>
159-
<groupId>org.springframework</groupId>
160-
<artifactId>spring-tx</artifactId>
161-
<version>${spring.version}</version>
162-
</dependency>
163-
<dependency>
164-
<groupId>org.springframework</groupId>
165-
<artifactId>spring-web</artifactId>
166-
<version>${spring.version}</version>
167-
</dependency>
168-
<dependency>
169-
<groupId>org.springframework</groupId>
170-
<artifactId>spring-webmvc</artifactId>
171-
<version>${spring.version}</version>
172-
</dependency>
173-
<dependency>
174-
<groupId>org.springframework</groupId>
175-
<artifactId>spring-webmvc-portlet</artifactId>
176-
<version>${spring.version}</version>
177-
</dependency>
178-
<dependency>
179-
<groupId>org.springframework</groupId>
180-
<artifactId>spring-websocket</artifactId>
181-
<version>${spring.version}</version>
182-
</dependency>
18382
<dependency>
18483
<groupId>org.jcuda</groupId>
18584
<artifactId>jcudnn</artifactId>
@@ -385,6 +284,11 @@
385284
<artifactId>hamcrest-library</artifactId>
386285
<version>1.3</version>
387286
</dependency>
287+
<dependency>
288+
<groupId>commons-codec</groupId>
289+
<artifactId>commons-codec</artifactId>
290+
<version>1.6</version>
291+
</dependency>
388292
<dependency>
389293
<groupId>com.moandjiezana.toml</groupId>
390294
<artifactId>toml4j</artifactId>

src/main/java/top/mryan2005/managesysteminjava/BasicClass/Entry.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import org.apache.commons.codec.binary.Base64;
44
import org.apache.commons.codec.digest.DigestUtils;
5-
import org.springframework.util.DigestUtils;
65
import javax.swing.*;
76
import javax.swing.table.TableColumn;
87
import java.awt.*;
@@ -27,7 +26,7 @@ public class Entry {
2726
public int total_number_of_radical_strokes_simplified; // 简体部首笔画总数
2827
public int total_number_of_radical_strokes_traditional; // 繁体部首笔画总数
2928
public String phrases; // 词组
30-
public String html; // HTML代码
29+
public String html, dispHtml; // HTML代码
3130
public ArrayList<String> Contributors; // 贡献者
3231
public String generateHTML() {
3332
html = "<html><head>" +
@@ -59,14 +58,13 @@ public String generateHTML() {
5958
html += "<p>@" + contributor + "</p>";
6059
}
6160
html += "<hr />";
62-
html += "<p>当前哈希:" + currentHash + "</p>";
6361
html += "</body></html>";
6462
return html;
6563
}
6664

6765
public String generateCurrentHash() throws UnsupportedEncodingException {
6866
Base64 base64 = new Base64();
69-
currentHash = DigestUtils.md5DigestAsHex(html.getBytes("GBK"));
67+
currentHash = DigestUtils.md5Hex(html.getBytes("utf-8"));
7068
return currentHash;
7169
}
7270

@@ -96,23 +94,25 @@ public void viewEntry(Entry entry) throws UnsupportedEncodingException {
9694
jDialog.setSize(800, 600);
9795
jDialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
9896
jDialog.setLayout(new FlowLayout());
99-
entry.generateHTML();
97+
dispHtml = entry.generateHTML();
10098
entry.generateCurrentHash();
101-
JLabel jLabel = new JLabel(entry.generateHTML());
99+
dispHtml = dispHtml.replaceAll("</body></html>", "<p>当前哈希:" + entry.currentHash + "</p></body></html>");
100+
JLabel jLabel = new JLabel(dispHtml);
102101
jDialog.add(jLabel);
103102
JButton jButton = new JButton("编辑");
104103
jDialog.add(jButton);
105104
jButton.addActionListener(new ActionListener() {
106105
@Override
107106
public void actionPerformed(ActionEvent e) {
108107
editEntry(jDialog);
109-
entry.generateHTML();
108+
dispHtml = entry.generateHTML();
110109
try {
111110
entry.generateCurrentHash();
112111
} catch (UnsupportedEncodingException ex) {
113112
throw new RuntimeException(ex);
114113
}
115-
jLabel.setText(entry.generateHTML());
114+
dispHtml = dispHtml.replaceAll("</body></html>", "<p>当前哈希:" + entry.currentHash + "</p></body></html>");
115+
jLabel.setText(dispHtml);
116116
jLabel.paintImmediately(jLabel.getVisibleRect());
117117
}
118118
});
@@ -122,13 +122,14 @@ public void actionPerformed(ActionEvent e) {
122122
jButton1.addActionListener(new ActionListener() {
123123
@Override
124124
public void actionPerformed(ActionEvent e) {
125-
entry.generateHTML();
125+
dispHtml = entry.generateHTML();
126126
try {
127127
entry.generateCurrentHash();
128128
} catch (UnsupportedEncodingException ex) {
129129
throw new RuntimeException(ex);
130130
}
131-
jLabel.setText(entry.generateHTML());
131+
dispHtml = dispHtml.replaceAll("</body></html>", "<p>当前哈希:" + entry.currentHash + "</p></body></html>");
132+
jLabel.setText(dispHtml);
132133
jLabel.paintImmediately(jLabel.getVisibleRect());
133134
}
134135
});

src/main/java/top/mryan2005/managesysteminjava/BasicClass/LoginPart.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package top.mryan2005.managesysteminjava.BasicClass;
22

3-
import org.apache.commons.codec.digest.DigestUtils;
43
import top.mryan2005.managesysteminjava.SQLs.SQLLinker;
4+
import org.apache.commons.codec.digest.DigestUtils;
55

6+
import java.io.UnsupportedEncodingException;
7+
import java.nio.charset.StandardCharsets;
68
import java.sql.ResultSet;
79
import java.sql.SQLException;
810
import java.util.HashMap;
@@ -61,7 +63,7 @@ public LoginPart(SQLLinker sql1) {
6163
sql = sql1;
6264
}
6365

64-
public void register(String username, String password, String Sex, String UName) {
66+
public void register(String username, String password, String Sex, String UName) throws UnsupportedEncodingException {
6567
readUsersTable();
6668
if (username.matches("") || password.matches("") || UName.matches("")) {
6769
return;
@@ -73,7 +75,7 @@ public void register(String username, String password, String Sex, String UName)
7375
sql.runSQL("INSERT INTO Users.[user] (id, username, password, Sex, name) VALUES ('" + getMaxId() +"', '" + username + "', '" + password + "', '" + Sex + "', '" + UName + "')");
7476
}
7577

76-
public boolean login(String username, String password) {
78+
public boolean login(String username, String password) throws UnsupportedEncodingException {
7779
readUsersTable();
7880
password = runMd5(password);
7981
if (users.containsKey(username)) {
@@ -82,24 +84,24 @@ public boolean login(String username, String password) {
8284
return false;
8385
}
8486

85-
private String runMd5(String password) {
87+
private String runMd5(String password) throws UnsupportedEncodingException {
8688
for (int i = 0; i < 5; i++) {
87-
password = DigestUtils.md5Hex(password);
89+
password = DigestUtils.md5Hex(password.getBytes("utf-8"));
8890
}
8991
return password;
9092
}
9193

92-
public void setAvatar(String username, String avatar) {
93-
sql.runSQL("UPDATE Users.[user] SET avatar = '" + avatar + "' WHERE username = '" + username + "'");
94-
users.get(username).avatar = avatar;
94+
public void setAvatar(String username, String avator) {
95+
sql.runSQL("UPDATE Users.[user] SET avator = '" + avator + "' WHERE username = '" + username + "'");
96+
users.get(username).avatar = avator;
9597
}
9698

9799
public void setUName(String username, String UName) {
98100
sql.runSQL("UPDATE Users.[user] SET name = '" + UName + "' WHERE username = '" + username + "'");
99101
users.get(username).UName = UName;
100102
}
101103

102-
public void setPassword(String username, String password) {
104+
public void setPassword(String username, String password) throws UnsupportedEncodingException {
103105
password = runMd5(password);
104106
sql.runSQL("UPDATE Users.[user] SET password = '" + password + "' WHERE username = '" + username + "'");
105107
users.get(username).password = password;
@@ -243,6 +245,8 @@ public static void main(String[] args) {
243245
login.setPassword("test", "123456");
244246
} catch (SQLException e) {
245247
throw new RuntimeException(e);
248+
} catch (UnsupportedEncodingException e) {
249+
throw new RuntimeException(e);
246250
}
247251
}
248252
}

0 commit comments

Comments
 (0)