如何为 rootme web 等挑战制作密码系统
How to make a password system for challenges like rootme web
我正在制作一个网站,您必须在其中回答问题。但是答案并不是很安全。
我已经尝试过 Javascript 混淆器,但我对这种方法并不满意(很容易破解)。 Where/How 我可以存储这些答案吗?
我正在寻找一个类似 root-me 或其他挑战的系统。
如果您有任何建议或资源,请告诉我!
这是我的 Javascript 代码
var Answers = ['abc', 'abcd', 'abcde', 'abcdef']
function checkAnswers(){
Student_answer = document.f1.studentAnswer.value;
Teacher_answer = Answers[PageNum];
if (Student_answer.length == 0 || Teacher_answer.length == 0) {
Swal.fire ({
position: 'center',
icon: 'warning',
title: 'You Must Enter An Answer',
text: 'Try again',
timer: 1500
});
return false;
}
if (Student_answer == Teacher_answer) {
Swal.fire ({
position: 'center',
icon: 'success',
title: 'Good Job!',
text: 'Next anigma...',
confirmButtonText: '<a href="index1.html" onclick="closepopup()" style="color:#d9d9d9; text-decoration:none">Next</a>',
});
} else {
Swal.fire ({
position: 'center',
icon: 'error',
title: 'Wrong Answer',
text: 'Try again',
timer: 1500
});
}
}
您可以存储答案的哈希值而不是明文答案本身。
const answer = 'abc'
const encoder = new TextEncoder();
const data = encoder.encode(answer);
const hash = await crypto.subtle.digest('SHA-256', data);
当用户输入答案时,您会对他们的答案进行散列处理,如果散列匹配存储的答案,则答案是正确的。
人们仍然可以通过查找 Google 上的散列来找到答案:为了防止在散列之前使用 R3pTgWu7gy4FsbH6
之类的随机字符串为所有答案添加前缀,或者使用消息验证码(MAC) 散列答案的函数。
我正在制作一个网站,您必须在其中回答问题。但是答案并不是很安全。
我已经尝试过 Javascript 混淆器,但我对这种方法并不满意(很容易破解)。 Where/How 我可以存储这些答案吗?
我正在寻找一个类似 root-me 或其他挑战的系统。
如果您有任何建议或资源,请告诉我!
这是我的 Javascript 代码
var Answers = ['abc', 'abcd', 'abcde', 'abcdef']
function checkAnswers(){
Student_answer = document.f1.studentAnswer.value;
Teacher_answer = Answers[PageNum];
if (Student_answer.length == 0 || Teacher_answer.length == 0) {
Swal.fire ({
position: 'center',
icon: 'warning',
title: 'You Must Enter An Answer',
text: 'Try again',
timer: 1500
});
return false;
}
if (Student_answer == Teacher_answer) {
Swal.fire ({
position: 'center',
icon: 'success',
title: 'Good Job!',
text: 'Next anigma...',
confirmButtonText: '<a href="index1.html" onclick="closepopup()" style="color:#d9d9d9; text-decoration:none">Next</a>',
});
} else {
Swal.fire ({
position: 'center',
icon: 'error',
title: 'Wrong Answer',
text: 'Try again',
timer: 1500
});
}
}
您可以存储答案的哈希值而不是明文答案本身。
const answer = 'abc'
const encoder = new TextEncoder();
const data = encoder.encode(answer);
const hash = await crypto.subtle.digest('SHA-256', data);
当用户输入答案时,您会对他们的答案进行散列处理,如果散列匹配存储的答案,则答案是正确的。
人们仍然可以通过查找 Google 上的散列来找到答案:为了防止在散列之前使用 R3pTgWu7gy4FsbH6
之类的随机字符串为所有答案添加前缀,或者使用消息验证码(MAC) 散列答案的函数。