Шифрование в JavaScript
Ребятки мне необходимо написать программу которая будет шифровать текст.
В него входят 26 символов английского алфавита и 2 символа точка и запятая т.е 28 символов. есть вариант реализовать такое на JavaScript? если да то подскажите в каком направлении капать, мб литературу какую... буду безумно благодарен. |
всмысле шифровать?
Чтоб вместо текста были какие-нибудь крокозябры? :) Можно регэкспом заменять каждый символ с помощью метода replace() |
dmitry111,
Я думаю мб что бы на одной странице я вводил текст, мне он выдовал кракозябры как ты называешь, а на другой странице я вводил эти кракозябры, а мне выдавало начальный текст. |
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
<script>
var text = prompt("введите слово", "");
var elem = document.createElement("p");
elem.id = "xxx";
var regEx = /[\S]+/;
var x = text.replace(regEx, "слово зашифровано, нажми на меня чтобы расшифровать");
elem.innerHTML = x;
document.body.appendChild(elem);
document.getElementById("xxx").onclick = function () {
elem.innerHTML = text;
};
</script>
</body>
</html>
Можно придумать какие-либо алгоритмы и шифровать каждый символ. |
dmitry111,
Это бомба!)) то что нужно) ты сам написал это? если да , то можно переписать его таким образом что бы было поле, под полем кнопка "go" над полем 2 чек бокса. напротив одного слово "Шифрование" а напротив другого "Дешифрование" выбирая определённое поле происходит нужное действие, после нажатия кнопки "go" |
Evkliptik,
это не шифрование, это просто замена текста на фразу. Если нужно подобное не нужен даже регэкс. Вот replace() Если возникнут вопросы, с кодом, выкладывайте тут, помогу |
dmitry111,
Спасибо огромное, буду ковырять. если не сегодня ночью то завтра к вечеру что нить уже сделаю. |
Нашёл вот что
<h1>Шифрация текста на JavaScript</h1>
<br>
<script type="text/javascript">
<!-- Begin
function Encrypt(theText) {
output = new String;
Temp = new Array();
Temp2 = new Array();
TextSize = theText.length;
for (i = 0; i < TextSize; i++) {
rnd = Math.round(Math.random() * 122) + 68;
Temp[i] = theText.charCodeAt(i) + rnd;
Temp2[i] = rnd;
}
for (i = 0; i < TextSize; i++) {
output += String.fromCharCode(Temp[i], Temp2[i]);
}
return output;
}
function unEncrypt(theText) {
output = new String;
Temp = new Array();
Temp2 = new Array();
TextSize = theText.length;
for (i = 0; i < TextSize; i++) {
Temp[i] = theText.charCodeAt(i);
Temp2[i] = theText.charCodeAt(i + 1);
}
for (i = 0; i < TextSize; i = i+2) {
output += String.fromCharCode(Temp[i] - Temp2[i]);
}
return output;
}
// End -->
</script>
<form name=encform onsubmit="return false;">
<p>
<textarea name=box1 rows=5 cols=80>Текст для проверки возможности шифрования</textarea>
<p>
<input type=button value="Зашифровать Box1 в Box2" onClick="this.form.box2.value=Encrypt(this.form.box1.value);">
<br><p>
<textarea name=box2 rows=5 cols=80></textarea>
<p>
<input type=button value="Расшифровать Box2 to Box3" onClick="this.form.box3.value=unEncrypt(this.form.box2.value);">
<br><p>
<textarea name=box3 rows=5 cols=80></textarea>
</form>
этот скрипт шифрует и цифры и все все символы. есть возможность изменить его так, что бы использовался только английский алфавит и символы точка и запятая, регистр значения не имеет. dmitry111, как ты думаешь? |
Можно запрещать ввод для всех символов кроме нужных
<h1>Шифрация текста на JavaScript</h1>
<br>
<script type="text/javascript">
<!-- Begin
function Encrypt(theText) {
output = new String;
Temp = new Array();
Temp2 = new Array();
TextSize = theText.length;
for (i = 0; i < TextSize; i++) {
rnd = Math.round(Math.random() * 122) + 68;
Temp[i] = theText.charCodeAt(i) + rnd;
Temp2[i] = rnd;
}
for (i = 0; i < TextSize; i++) {
output += String.fromCharCode(Temp[i], Temp2[i]);
}
return output;
}
function unEncrypt(theText) {
output = new String;
Temp = new Array();
Temp2 = new Array();
TextSize = theText.length;
for (i = 0; i < TextSize; i++) {
Temp[i] = theText.charCodeAt(i);
Temp2[i] = theText.charCodeAt(i + 1);
}
for (i = 0; i < TextSize; i = i+2) {
output += String.fromCharCode(Temp[i] - Temp2[i]);
}
return output;
}
// End -->
</script>
<form name=encform onsubmit="return false;">
<p>
<textarea name=box1 rows=5 cols=80></textarea>
<p>
<input type=button value="Зашифровать Box1 в Box2" onClick="this.form.box2.value=Encrypt(this.form.box1.value);">
<br><p>
<textarea name=box2 rows=5 cols=80></textarea>
<p>
<input type=button value="Расшифровать Box2 to Box3" onClick="this.form.box3.value=unEncrypt(this.form.box2.value);">
<br><p>
<textarea name=box3 rows=5 cols=80></textarea>
</form>
<script>
// не кроссбраузерный, работает в safari
// не дает вводить символы кроме латинских букв
document.getElementsByTagName("textarea")[0].onfocus = function (event) {
this.onkeypress = function (event) {
var key = event.which;
if (key < 97 || key > 122) return false;
};
};
</script>
Это так набросок, чтобы дать понять. Он не кроссбраузерный и только для латинских букв. просто чтоб донести суть. 5 ночи) :) |
ах да, пробел тоже символ!
|
| Часовой пояс GMT +3, время: 09:39. |