Я пытаюсь построить шифр & decrypter для моего назначения uni на основе цезарного шифрования.Цезарь Cipher string length issue
Я сделал приличный старт, но всякий раз, когда я пытаюсь вернуть длину строки, чтобы я мог зацикливать encrypter для каждого символа, он возвращает его как null.
Вот мой код
EDIT: Я включил готовый код, который работает
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Encryption version 0</title>
<style>
body {
margin-left: 15%;
margin-right: 15%;
}
#description {
font-style: italic;
font-size: 18px;
}
#instruction {
font-weight: bold;
color: red;
font-size: 18px;
}
</style>
</head>
<body>
<h1>Welcome to the encryptor</h1>
<p id="description">Please type below the text you wish to encript</p>
<input name="txt" type="text" maxlength="512" id="txt" />
<p>And pick an encryption key</p>
<input name="key1" type="text" maxlength="512" id="key1" />
<button onclick= "enrypt()">Submit</button>
<p id="word"></p>
<h1>Welcome to the decrypter</h1>
<p id="description">Please type below the text you wish to decrypt</p>
<input name="txt2" type="text" maxlength="512" id="txt2" />
<p>And your encryption key</p>
<input name="key" type="text" maxlength="512" id="key" />
<button onclick= "decrypt()">Submit</button>
<p id="word2"></p>
<script type="text/javascript">
//Script 1
function enrypt() {
var text, additon, encrypted, numb;
text, encrypted = "";
text = document.getElementById('txt').value;
additon = document.getElementById('key1').value;
for (i = 0; i < text.length; i++) {
numb = text.charCodeAt(i);
key = parseFloat(additon) + parseFloat(numb);
encrypted += String.fromCharCode(key)
}
document.getElementById("word").innerHTML = 'Your encrypted word is: ' + encrypted;
}
//Script 2
function decrypt() {
var text2, additon2, encrypted2, numb2;
text2, encrypted2 = "";
text2 = document.getElementById('txt2').value;
addition2 = document.getElementById('key').value;
for (i = 0; i < text2.length; i++) {
numb2 = text2.charCodeAt(i);
key = parseFloat(numb2) - parseFloat(addition2);
encrypted2 += String.fromCharCode(key)
}
document.getElementById("word2").innerHTML = 'Your encrypted word is: ' + encrypted2;
}
</script>
</body>
</html>
Я знаю, что я использую встроенный CSS, это просто временный
Спасибо, я должен был подумать об этом. все равно получите длину строки undefined – jkb114
Я вижу, а затем просматривая ваш код дальше, я заметил, что вы не проверяете длину строки, а элемент DOM. Проверьте значение 'txt.value.length'. Обновлен мой ответ. – Uzbekjon
Еще раз спасибо. теперь он говорит Невозможно прочитать свойство charCodeAt из null. Я не понимаю, как я установил переменную «i» со значением 0, поэтому он должен прочитать ее в позиции 0, которая является первой. Правильно? – jkb114