Я женюсь и вместо печати приглашений на свадьбу я сделал веб-страницу. Один из моих друзей создал подпапку (/var/www/web/myname
) на своем веб-сервере, и я загрузил свои файлы (HTML, CSS, JS) через S SH.
Это важно : У меня есть доступ только к этой папке, поэтому я не могу использовать любую базу данных и делать какие-либо изменения на стороне сервера! Мой единственный набор инструментов - это HTML директивы и клиентская часть JS.
Поскольку он опубликован c, его может увидеть каждый, но я этого не хочу. Вот почему я AES зашифровал код HTML моей страницы и сделал страницу входа. После ввода правильного пароля (его ha sh хранится в исходном файле JS) сценарий JS расшифровывает зашифрованную строку AES (которая также хранится в исходном файле JS), используя пароль в качестве и он изменяет фактическую страницу на теперь расшифрованный код HTML, вызывая document.open()
, document.write()
и document.close()
.
. Есть ли способ заставить браузер кэшировать фактическую HTML код, чтобы избежать повторного ввода пароля при каждом открытии страницы?
Некоторые из вас просили JS код входа в систему:
var hashString = "sha256_hash_of_the_password";
var indexPage = "aes_enrypted_string_of_base64_coded_html"; // The original one is quite long...
document.getElementById("password-box").addEventListener("keyup", function(event) {
event.preventDefault();
document.getElementById("password-box").classList.remove("pw-bad");
if (event.keyCode === 13) {
document.getElementById("login-button").click();
}
});
function buttonListener()
{
var password = document.getElementById("password-box").value;
if(password !== "") {
if(CryptoJS.SHA256(password) == hashString.toLowerCase()) {
var indexDecrypt = CryptoJS.AES.decrypt(indexPage, password).toString(CryptoJS.enc.Utf8);
var parsedWordArray = CryptoJS.enc.Base64.parse(indexDecrypt);
var parsedStr = parsedWordArray.toString(CryptoJS.enc.Utf8);
document.open('text/html');
document.write(parsedStr);
document.close();
return;
}
document.getElementById("password-box").value = "";
document.getElementById("password-box").classList.add("pw-bad");
}
document.getElementById("password-box").focus();
}
Я знаю, что это глупо вещь, пожалуйста, не суди меня. :)