Autor Zpráva
Spajky
Profil
Sháním program (případně kód PHP/JS), který podle hesla zašifruje text. Viz.: Vigenérova šifra
Našel jsem kód na program, zkusil jsem ho zkopírovat do formátu *.cpp ,ale nevím, jak ho spustit... Viz.: poslední kód
Dero
Profil
Spajky: V JS Ti to klidně naprogramuji.
Spajky
Profil
Fakt? To bych byl moc rád. Podívej se na odkaz "poslední kód", je tam návod k použití Vigenérova šifrového kódu.
Dero
Profil
Spajky: Já tu šifru znám, není problém.
Spajky
Profil
Jestli ti to nebude vadit, tak tedy do toho. :-)
DoubleThink
Profil *
Mrkni se na PHP Mcrypt Encryption Functions.
Přímo Vigenérovu šifru tam asi nenajdeš, ale nějakou velmi podobnou určitě ano.
Spajky
Profil
Tam ale nevím co je co...
Spajky
Profil
hledat obrázky
Dero
Profil
Řešení v JavaScriptu, psané na koleni:

<script type="text/javascript">


function VigenerEncode(textToEncypher, codeKey) {
var retStr = '';
codeKey = codeKey.toLowerCase();

var j = 0;
for (var i = 0; i < textToEncypher.length; i++) {
var cat = textToEncypher.charCodeAt(i);
if (cat > 64 && cat < 91) cat += 32;
if (cat < 97 || cat > 122) cat = null;
if (cat != null) {
var radek = codeKey.charCodeAt(j % codeKey.length) - 96;
cat += radek - 1;
if (cat > 122) cat = (cat % 122) + 96;
retStr += String.fromCharCode(cat);
j++;
}
}
return retStr;
}

function VigenerDecode(textToDecypher, codeKey) {
var retStr = '';
codeKey = codeKey.toLowerCase();
for (var i = 0; i < textToDecypher.length; i++) {
var cat = textToDecypher.charCodeAt(i);
var radek = codeKey.charCodeAt(i % codeKey.length) - 96;
cat -= (radek - 1);
if (cat < 97) cat += 26;
retStr += String.fromCharCode(cat);
}
return retStr;
}

document.write ("Zakodovany text: " + VigenerEncode("Tato zprava je zasifrovana Vigenerovou sifrou!", "heslo") + "<br><br>");
document.write ("Dekodovany text: " + VigenerDecode("aelznwvsgoqirlgpjjzjhrsgwnifpfvzgfgpjjzi", "heslo"));

</script>
Spajky
Profil
To je ono.
Ještě drobnost, nešlo by udělat uživatelsky příjemější prostrědí? Měnit to v kódu není moc příjemný.
Ale díky, moc jsi mi pomohl!
Dero
Profil
Spajky: Promiň, ale psal jsem to z dobré vůle jen proto, že to byl docela zajímavý příklad. Ty serepetičky okolo si už určitě napíšeš sám - to mě nebaví.
Spajky
Profil
Promiň... a díky moc!
Dero
Profil
Spajky: Rádo se stalo. Hezký den Ti přeji.
Spajky
Profil
Jak propojit input se skriptem?
nightfish
Profil
document.getElementById("idInputu").value
Spajky
Profil
Tak s tím si asi neporadím, asi to budu muset nechat tak, jak to je.
Dero
Profil
Tak s tím si asi neporadím, asi to budu muset nechat tak, jak to je.

Loudile.

<script type="text/javascript">


function VigenerEncode(textToEncypher, codeKey) {
var retStr = '';
codeKey = codeKey.toLowerCase();

var j = 0;
for (var i = 0; i < textToEncypher.length; i++) {
var cat = textToEncypher.charCodeAt(i);
if (cat > 64 && cat < 91) cat += 32;
if (cat < 97 || cat > 122) cat = null;
if (cat != null) {
var radek = codeKey.charCodeAt(j % codeKey.length) - 96;
cat += radek - 1;
if (cat > 122) cat = (cat % 122) + 96;
retStr += String.fromCharCode(cat);
j++;
}
}
return retStr;
}

function VigenerDecode(textToDecypher, codeKey) {
var retStr = '';
codeKey = codeKey.toLowerCase();
for (var i = 0; i < textToDecypher.length; i++) {
var cat = textToDecypher.charCodeAt(i);
var radek = codeKey.charCodeAt(i % codeKey.length) - 96;
cat -= (radek - 1);
if (cat < 97) cat += 26;
retStr += String.fromCharCode(cat);
}
return retStr;
}

function doIt() {
var vigIn = document.getElementById('vigIn');
var pass = document.getElementById('pass');
var vigOut = document.getElementById('vigOut');
var typ = document.getElementById('typ').value;

if (typ == 1) vigOut.value = VigenerEncode(vigIn.value, pass.value);
if (typ == 2) vigOut.value = VigenerDecode(vigIn.value, pass.value);
}

</script>

<form action="#">
Vlozte text: <input type="text" id="vigIn"><br>
Vlozte heslo: <input type="text" id="pass"><br><br>
Vystupni text: <input type="text" id="vigOut"><br><br>
<select id="typ">
<option selected="selected" value="1">Zakodovat</option>
<option value="2">Rozkodovat</option>
</select><br><br>
<button onclick="doIt(); return false;">Proved</button>
</form>
Spajky
Profil
Prosím? Už jsem se s tím smířil... Já znám jen HTML a trochu také CSS. JS je pro mě novinkou, navíc nechápu jak to může fungovat jen tak...
Dero
Profil
Spajky: Ten druhý kód, který jsem vložil, je včetně uživatelského rozhraní, kterého jsi pravděpodobně chtěl dosáhnout. Toho "loudila" neber vážně, bylo to jen přátelské pošťouchnutí. :o)
Spajky
Profil
nj, díky moc a ještě víc!
Bubák
Profil
Je to trochu OT, ale něco hotového (enigma) je http://widgets.opera.com/widget/5140
Můžeš si to stáhnout (pravé myšítko), rozzipovat, spustit, zkoumat.
Spajky
Profil
Co znamená OT?
Dero
Profil
Spajky: OT = Off Topic = Mimo téma hovoru
Toto téma je uzamčeno. Odpověď nelze zaslat.

0