这是我在本网站上关于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>
答案 0 :(得分:0)
好吧,Javascript中的parseInt函数将radix参数作为第二个参数,可以根据给定的基数将字符串转换为数字
所以你可以做到
var convert=parseInt("f", 16); //16
var convert2=parseInt("af", 16); //175
我不明白你用“z”作为例子。也许我不明白,但是基数16是HEX-Code,因此存在以下符号; 012345689abcdef
答案 1 :(得分:0)
你的问题有所改变。
我有以下内容:
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;
}