使用和方程式JAVASCRIPT将它们转换为数字的块

时间:2014-04-20 17:18:03

标签: javascript encryption type-conversion rsa equation

这是我在本网站上关于javascript代码的第一个问题。我已经获得了RSA加密代码,我们的教授给了我们一种非常奇怪的加密文本的方法。

用户在文本字段中输入纯文本,然后程序应该能够:

首先 - 每4个字符分解文本并将其存储到数组中(完成!)

问题 现在我在这里面对...... 秒 - 使用radix= 16.(ex: Num("abc")=1*16^2+2*16^1+3*16^0))计算每个块的数值这些字母应转换为匹配的数字,例如,

space= 0
A,a =1
B, b =2
C , c = 3
. 
. Z, z= 26

然后发送到执行该计算的函数! : - (

然后程序继续使用加密功能加密每个块等等......但是,就目前而言,我正在寻找一种方法来解决这个问题......

我已经搜索了很多,但一无所获!请指导我如何做到这一点。非常感谢!!!

这是我的javascript代码..

    function start()
    {
        var eB = document.getElementById( "encryptButton" );
        eB.addEventListener("click", str2num, false);
    }

function split(){
    var str = document.getElementById( "inputField" ).value;
    var chunks = [];
    for (var i = 0, charsLength = str.length; i < charsLength; i += 3) {
    chunks.push(str.substring(i, i + 3));
    }
   document.getElementById("results").innerHTML=chunks;
}

window.addEventListener("load", start, false);

这是HTML(用户输入文本的表单)..

<html>
   <head>
      <meta charset = "utf-8">
      <title>RSA Algorithm</title>
      <script src = "rsaj.js"></script>
   </head>
   <body>
      <form action = "#">
         <p>Enter a sentence to encrypt:</p>
         <p><input id = "inputField" type = "text">
            <input id = "encryptButton" type = "button" value = "Encrypt"></p>      
         <div id = "results"> </div>
      </form>
   </body>
</html>

2 个答案:

答案 0 :(得分:0)

好吧,Javascript中的parseInt函数将radix参数作为第二个参数,可以根据给定的基数将字符串转换为数字

所以你可以做到

var convert=parseInt("f", 16); //16
var convert2=parseInt("af", 16); //175

我不明白你用“z”作为例子。也许我不明白,但是基数16是HEX-Code,因此存在以下符号; 012345689abcdef

答案 1 :(得分:0)

你的问题有所改变。

我有以下内容:

  • 使用'加密'键创建地图。
  • 收听输入字段的更改
  • 输入值的大写。
  • 遍历每个角色的值。
  • 搜索地图并获取它的索引(默认值= 0,空格以及)。
  • 根据搜索增加总价值。
  • 每次迭代都会降低功率。
  • 将结果返回div.results

jsfiddle:http://jsfiddle.net/kychan/X8R2p/4/

var map     = ' 123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var result  = document.getElementById('result');

function calculate(e)
{
    //    lower the cases.
    var x = e.value.toUpperCase();

    //    var holding total value.
    var total = 0;

    //    decrement on each character.
    //    start with the length of entered value -1.
    var decrementor = e.value.length-1;

    //    iterate through the string.
    for (var i in x)
    {
        //    search in map.
        var r = map.indexOf(x[i]);

        //    0 = 0, so no need to sum up or store it in the map.
        //    space = 0, in the map because 1 needs to return 1.
        if (r>-1)
        {
            total     +=    r*Math.pow(16, decrementor);

            decrementor--;
        }
    }

    //    print results.
    result.innerHTML = total;
}