首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用和方程JAVASCRIPT将它们转换成数字的单词块

使用和方程JAVASCRIPT将它们转换成数字的单词块
EN

Stack Overflow用户
提问于 2014-04-20 17:18:02
回答 2查看 414关注 0票数 0

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

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

First-每4个字符拆分一次文本,并将其存储到数组中(已完成!)

PROBLEM现在是我面临的.Second-使用radix= 16.(ex: Num("abc")=1*16^2+2*16^1+3*16^0))计算每个块的数值--这些字母应该转换成匹配的数字,例如,

代码语言:javascript
复制
space= 0
A,a =1
B, b =2
C , c = 3
. 
. Z, z= 26

然后发送到一个进行计算的函数!

然后程序继续使用加密函数对每个块进行加密,等等。但是,现在,我想找个办法先解开这个谜团.

我已经搜过很多遍了,但什么也没找到!请指导我如何去做。非常感谢!

这是我的javascript代码。

代码语言: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 1(用户输入文本的表单)。

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-20 17:27:23

嗯,Javascript中的parseInt函数有基参数作为第二个参数,它可以根据给定的基数将字符串转换为数字。

所以你可以

代码语言:javascript
复制
var convert=parseInt("f", 16); //16
var convert2=parseInt("af", 16); //175

我不明白的是你用"z“作为例子。也许我不明白,但基数16是HEX-代码,因此存在以下符号;012345689abc don

票数 0
EN

Stack Overflow用户

发布于 2014-04-20 17:36:49

你的问题有点改变了。

我有以下几点:

  • 用“加密”密钥创建地图。
  • 倾听输入字段中的更改。
  • 大写的输入值。
  • 迭代每个字符的值。
  • 搜索地图并获取它的索引(默认值=0,空格)。
  • 根据搜索增加总价值。
  • 每一次迭代都会减少能量。
  • 将结果返回给div.results

小提琴手:http://jsfiddle.net/kychan/X8R2p/4/

代码语言:javascript
复制
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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23185375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档