所以使用这个编码器和解码器我想让它解码多个字符,比如解码器部分中的数字,但似乎限制是一个字符。所以我的问题是,当这8个数字匹配时,我如何能够通知代码,以及如何将它们变成对应的字母。编码器部分完全正常工作。我试过在数字周围使用引号,但这似乎不起作用
HTML:
<h2> Encrypt: </h2>
<textarea type="text" id="Encrypted" style="text-
transform:uppercase; resize: none; width: 350px;"
onkeyup="javascript:this.value=this.value.toUpperCase();"
rows="10" ></textarea>
<br><br>
<input type="button" name="EncryptButton" value="Encrypt"
onclick="Encrypt()">
<br><br>
<textarea type="text" id="Decrypted" style="text-transform:uppercase;
resize: none; width: 350px;"
onkeyup="javascript:this.value=this.value.toUpperCase();" rows="10">
</textarea>
<br><br>
<input type="button" name="DecryptButton" value="Decrypt"
onclick="Decrypt()">
JAVASCRIPT:
var map = {
A: '01011010 ', B: '01011001 ', C: '01011000 ',
D: '01010111 ', E: '01010110 ', F: '01010101 ',
G: '01010100 ', H: '01010011 ', I: '01010010 ',
J: '01010001 ', K: '01010000 ', L: '01001111 ',
M: '01001110 ', N: '01001101 ', O: '01001100 ',
P: '01001011 ', Q: '01001010 ', R: '01001001 ',
S: '01001000 ', T: '01000111 ', U: '01000110 ',
V: '01000101 ', W: '01000100 ', X: '01000011 ',
Y: '01000010 ', Z: '01000001 '
};
var map2 = {
01011010: "A", 01011001: "B", 01011000: "C",
01010111: "D", 01010110: "E", 01010101: "F",
01010100: "G", 01010011: "H", 01010010: "I",
01010001: "J", 01010000: "K", 01001111: "L",
01001110: "M", 01001101: "N", 01001100: "O",
01001011: "P", 01001010: "Q", 01001001: "R",
01001000: "S", 01000111: "T", 01000110: "U",
01000101: "V", 01000100: "W", 01000011: "X",
01000010: "Y", 01000001: "Z"
};
function Encrypt()
{
var inputEncrypted = document.getElementById("Encrypted");
var EncryptedText = inputEncrypted.value;
var newText = "";
for(var i=0; i < EncryptedText.length; i++) {
switch(EncryptedText[i]) {
case "A":
newText += map.A;
break;
case "B":
newText += map.B;
break;
case "C":
newText += map.C;
break;
case "D":
newText += map.D;
break;
case "E":
newText += map.E;
break;
case "F":
newText += map.F;
break;
case "G":
newText += map.G;
break;
case "H":
newText += map.H;
break;
case "I":
newText += map.I;
break;
case "J":
newText += map.J;
break;
case "K":
newText += map.K;
break;
case "L":
newText += map.L;
break;
case "M":
newText += map.M;
break;
case "N":
newText += map.N;
break;
case "O":
newText += map.O;
break;
case "P":
newText += map.P;
break;
case "Q":
newText += map.Q;
break;
case "R":
newText += map.R;
break;
case "S":
newText += map.S;
break;
case "T":
newText += map.T;
break;
case "U":
newText += map.U;
break;
case "V":
newText += map.V;
break;
case "W":
newText += map.W;
break;
case "X":
newText += map.X;
break;
case "Y":
newText += map.Y;
break;
case "Z":
newText += map.Z;
break;
case " ":
newText += " ";
default:
newText += EncryptedText[i];
};
}
inputEncrypted.value = newText;
}
function Decrypt()
{
var inputDecrypted = document.getElementById("Decrypted");
var DecryptedText = inputDecrypted.value;
var newText2 = "";
for(var o=0; o < DecryptedText.length; o++) {
switch(DecryptedText[o]) {
case "A":
newText2 += map2.A;
break;
case "B":
newText2 += map2.B;
break;
case "C":
newText2 += map2.C;
break;
case "D":
newText2 += map2.D;
break;
case "E":
newText2 += map2.E;
break;
case "F":
newText2 += map2.F;
break;
case "G":
newText2 += map2.G;
break;
case "H":
newText2 += map2.H;
break;
case "I":
newText2 += map2.I;
break;
case "J":
newText2 += map2.J;
break;
case "K":
newText2 += map2.K;
break;
case "L":
newText2 += map2.L;
break;
case "M":
newText2 += map2.M;
break;
case "N":
newText2 += map2.N;
break;
case "O":
newText2 += map2.O;
break;
case "P":
newText2 += map2.P;
break;
case "Q":
newText2 += map2.Q;
break;
case "R":
newText2 += map2.R;
break;
case "S":
newText2 += map2.S;
break;
case "T":
newText2 += map2.T;
break;
case "U":
newText2 += map2.U;
break;
case "V":
newText2 += map2.V;
break;
case "W":
newText2 += map2.W;
break;
case "X":
newText2 += map2.X;
break;
case "Y":
newText2 += map2.Y;
break;
case "Z":
newText2 += map2.Z;
break;
case " ":
newText2 += " ";
default:
newText2 += DecryptedText[i];
};
}
inputDecrypted.value = newText2;
}
答案 0 :(得分:0)
您需要原始加密数据,最后没有空格,解密对象的密钥也是如此,其中密钥需要写为字符串,因为前导零被解释为八进制数:
var map2 = { 01011010: "A", 01011001: "B", 01011000: "C", 01010111: "D", 01010110: "E", 01010101: "F", 01010100: "G", 01010011: "H", 01010010: "I", 01010001: "J", 01010000: "K", 01001111: "L", 01001110: "M", 01001101: "N", 01001100: "O", 01001011: "P", 01001010: "Q", 01001001: "R", 01001000: "S", 01000111: "T", 01000110: "U", 01000101: "V", 01000100: "W", 01000011: "X", 01000010: "Y", 01000001: "Z" };
console.log(map2);
&#13;
要获取解密值,您需要按空格分割并将字符串作为获取解密值的密钥。
onkeyup
不需要javascript:
作为前缀,因为它需要设计Javascript。
对于不是类或不可执行函数的变量名和函数(稍后与new
语句一起使用的函数)通常以小写字母开头。
var map = { A: '01011010', B: '01011001', C: '01011000', D: '01010111', E: '01010110', F: '01010101', G: '01010100', H: '01010011', I: '01010010', J: '01010001', K: '01010000', L: '01001111', M: '01001110', N: '01001101', O: '01001100', P: '01001011', Q: '01001010', R: '01001001', S: '01001000', T: '01000111', U: '01000110', V: '01000101', W: '01000100', X: '01000011', Y: '01000010', Z: '01000001'},
map2 = { '01011010': "A", '01011001': "B", '01011000': "C", '01010111': "D", '01010110': "E", '01010101': "F", '01010100': "G", '01010011': "H", '01010010': "I", '01010001': "J", '01010000': "K", '01001111': "L", '01001110': "M", '01001101': "N", '01001100': "O", '01001011': "P", '01001010': "Q", '01001001': "R", '01001000': "S", '01000111': "T", '01000110': "U", '01000101': "V", '01000100': "W", '01000011': "X", '01000010': "Y", '01000001': "Z" };
function encrypt() {
var inputEncrypted = document.getElementById("Encrypted"),
text = inputEncrypted.value,
encrypted = "",
i;
for (i = 0; i < text.length; i++) {
encrypted += encrypted && ' ';
encrypted += map[text[i]] || text[i];
}
inputEncrypted.value = encrypted;
}
function decrypt() {
var inputDecrypted = document.getElementById("Decrypted"),
code = inputDecrypted.value.split(' '),
decrypted = "",
i;
for (i = 0; i < code.length; i++) {
decrypted += map2[code[i]] || code[i];
}
inputDecrypted.value = decrypted;
}
&#13;
<h2>Encrypt:</h2>
<textarea type="text" id="Encrypted" style="text-
transform:uppercase; resize: none; width: 350px;" onkeyup="this.value = this.value.toUpperCase();" rows="10"></textarea><br><br>
<input type="button" name="EncryptButton" value="Encrypt" onclick="encrypt()"><br><br>
<textarea type="text" id="Decrypted" style="text-transform:uppercase;
resize: none; width: 350px;" onkeyup="this.value = this.value.toUpperCase();" rows="10"></textarea><br><br>
<input type="button" name="DecryptButton" value="Decrypt" onclick="decrypt()">
&#13;