演唱会管理系统

1、联系方式11位

image-20230515003704332

点击注册的时候,会进行监听

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
document.getElementById('registration-form').addEventListener('submit', function(event) {
var code = document.getElementById('contact').value;
var idcard = document.getElementById('address').value;
var pattern = /^\d{11}$/;

var idcardpattern = /^\d{18}$/;
if (!pattern.test(code)) {
alert('联系方式固定位11位!');
event.preventDefault(); // 阻止表单提交
}

if (!idcardpattern.test(idcard)) {
alert('身份证号固定位18位!');
event.preventDefault(); // 阻止表单提交
}
});

2、

image-20230515003818571

数据库我没有改变,idCard。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
document.getElementById('registration-form').addEventListener('submit', function(event) {
var code = document.getElementById('contact').value;
var idcard = document.getElementById('address').value;
var pattern = /^\d{11}$/;

var idcardpattern = /^\d{18}$/;
if (!pattern.test(code)) {
alert('联系方式固定位11位!');
event.preventDefault(); // 阻止表单提交
}

if (!idcardpattern.test(idcard)) {
alert('身份证号固定位18位!');
event.preventDefault(); // 阻止表单提交
}
});

image-20230515003953181

身份证号已存在

1
2
3
4
5
List<Users> byidCard = this.usersService.getUsersByidCard(idUser);
if (byidCard.size() != 0) {
this.getSession().setAttribute("message", "身份证号已存在");
return "redirect:/index/preReg.action";
}

3、

image-20230515004207264

4、

image-20230515004236931

1
2
3
4
<dd>
<strong>购买数量:</strong> <input name="num" type="text" id="number" value="1" size="4"
style="border: 1px solid #ccc;" readonly/> <input type="hidden" name="concertid" value="${concert.concertid }" />
</dd>

readonly 只读

5、

image-20230515004825255

密码:MD5

https://www.cmd5.com/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public final static String md5(String s) {
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; // 创建一个16进制数的数组
try {
byte[] strTemp = s.getBytes();// 把传入的字符串转化成数组
MessageDigest mdTemp = MessageDigest.getInstance("MD5"); // 建立一个mdTemp
// 类的对象
// 对象名称叫做MD5实例
mdTemp.update(strTemp);// 更新strTemp 数组
byte[] md = mdTemp.digest(); // 通过digest() 方法重新定义一个数组
int j = md.length; // md数组的长度
char str[] = new char[j * 2]; // 定义一个字符数组 数组的长度是md数组长度的2倍
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i]; // 给byte0变量赋值
str[k++] = hexDigits[byte0 >>> 4 & 0xf]; // 通过hexDigits[]
// 把字符串s转化成16进制32位的字符串
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str); // 返回转换后的字符串
} catch (Exception e) {
return null;
}
}

.身份证:BASE64

1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) {
String originalString = "430485199302145986"; // 待加密的字符串

// 加密
String encodedString = Base64.getEncoder().encodeToString(originalString.getBytes());
System.out.println("Encoded String: " + encodedString);

// 解密
String decodedString = new String(Base64.getDecoder().decode(encodedString.getBytes()));
System.out.println("Decoded String: " + decodedString);
}

用户端看到的身份证:密文-》解密-》前端显示

管理端看到的身份证:前端显示