凯撒密码的工作

时间:2013-12-07 18:40:11

标签: javascript encryption

首先,我为我可怕的英语感到抱歉,我是法国人(是的,你可以怪我ahah:P),这是我第一次参加这个论坛,因为很多人都说我“如果你需要帮助,请转到stackoverflow“。所以,我需要帮助Javascript,在学校,老师要求我和其他人,创建“Le chiffredeCésar”,我认为这意味着英语“Caesar_cipher”,然后:

HTML:

<!DOCTYPE html>

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Chiffrement</title> 
    <meta name="author" content="ISN_Robespierre" />
    <link href="chiffrer.css" rel="stylesheet" type="text/css" media="screen"/>
  </head>
  <body>
    <h1>Le chiffre de César.</hi>
        <p>Message à traiter:</p>
        <textarea id="message1"></textarea>
        </br>
        clef:<input id="clef" type="text" value="3">
            <button type="button" id="boutonChiffrer" > Chiffrer </button>
            <button type="button" id="boutonDechiffrer" > Dechiffrer </button>
        <p>Message traité:</p>
            <div id="message2"><div>

    <script type="text/javascript" src="chiffrer.js" >  </script>   
  </body>
</html>

使用Javascript:

var clef;
var message1;
var message2;

var setupEvents = function() {

    clef = document.getElementById("clef");  
        message1 = document.getElementById("message1");
    message2 = document.getElementById("message2");

    var boutonChiffrer = document.getElementById("boutonChiffre");
    var boutonDechiffrer = document.getElementById("boutonDechiffre");
    boutonChiffrer.addEventListener("click", chiffrer);
    boutonDechiffrer.addEventListener("click", dechiffrer);
}

window.addEventListener("load", setupEvents);

var actualiserMessage2 = function() 
{
    var nombreClef = parseFloat(clef.value);
    var onChiffre = chiffrer(nombreClef);
    message2.value = onChiffre;

}

var decaler = function (texte, clef)
{
 message2.innerHTML = "";
 var taille = texte.lenght();
 for(var i=0, i<taille, i++)
 {
 var code = texte.charCodeAt(i);
 var codeDecale=decaleCode(code, clef);
 message2.innerHTML+=String.fromCharCode(codeDecale);.
 }

}

var chiffrer = function()
{
}

var dechiffrer = function()
{
}

我完全阻止了这里,我们没有上过Javascript的课程,他们只是说“为下周工作”

Caesar_cipher有加密功能我认为,这个链接解释了它: http://en.wikipedia.org/wiki/Caesar_cipher

如果您对var名称有疑问,我会尝试给出答案。

感谢您的帮助,再见,抱歉我的英文:/

ps:为什么我不能在帖子的第一篇说“你好”? OO

1 个答案:

答案 0 :(得分:0)

您必须为每个角色添加一个数字,但是您必须小心保持在26个字母内。我假设你不会碰任何符号。这是加密代码,虽然我看不懂法语,所以我真的不知道你的界面是如何工作的。

注意:小写的'a'等于97,'z' - &gt; 122,'A' - &gt; 65,'Z' - &gt; 90。

var encrypt = function(plaintext, shiftAmount) {
    var ciphertext = "";
    for(var i = 0; i < plaintext.length; i++) {
        var plainCharacter = plaintext.charCodeAt(i);
        if(plainCharacter >= 97 && plainCharacter <= 122) {
            ciphertext += String.fromCharCode((plainCharacter - 97 + shiftAmount) % 26 + 97);
        } else if(plainCharacter >= 65 && plainCharacter <= 90) {
            ciphertext += String.fromCharCode((plainCharacter - 65 + shiftAmount) % 26 + 65);
        } else {
            ciphertext += String.fromCharCode(plainCharacter);
        }
    }
    return ciphertext;
}

var decrypt = function(ciphertext, shiftAmount) {
    var plaintext = "";
    for(var i = 0; i < ciphertext.length; i++) {
        var cipherCharacter = ciphertext.charCodeAt(i);
        if(cipherCharacter >= 97 && cipherCharacter <= 122) {
            plaintext += String.fromCharCode((cipherCharacter - 97 - shiftAmount + 26) % 26 + 97);
        } else if(cipherCharacter >= 65 && cipherCharacter <= 90) {
            plaintext += String.fromCharCode((cipherCharacter - 65 - shiftAmount + 26) % 26 + 65);
        } else {
            plaintext += String.fromCharCode(cipherCharacter);
        }
    }
    return plaintext;
}