我在页面上做了一个关于:chrome on chrome的项目,这意味着除了涉及JavaScript之外没有其他代码。
我正在尝试使用我拥有的知识制作加密算法。这是迄今为止的代码:
function main() {
var input = prompt("Enter a string")
if (input.substring(0, 1) == "a") {
var _01 = "a"
var _01new = _01.replace("a", "1")
}
else if (input.substring(0, 1) == "b") {
var _01 = "b"
var _01new = _01.replace("b", "2")
}
else if (input.substring(0, 1) == "c") {
var _01 = "c"
var _01new = _01.replace("c", "3")
}
else if (input.substring(0, 1) == "d") {
var _01 = "d"
var _01new = _01.replace("d", "4")
}
else if (input.substring(0, 1) == "e") {
var _01 = "e"
var _01new = _01.replace("e", "5")
}
else if (input.substring(0, 1) == "f") {
var _01 = "f"
var _01new = _01.replace("f", "6")
}
else if (input.substring(0, 1) == "g") {
var _01 = "g"
var _01new = _01.replace("g", "7")
}
else if (input.substring(0, 1) == "h") {
var _01 = "h"
var _01new = _01.replace("h", "8")
}
else if (input.substring(0, 1) == "i") {
var _01 = "i"
var _01new = _01.replace("i", "9")
}
else if (input.substring(0, 1) == "j") {
var _01 = "j"
var _01new = _01.replace("j", "10")
}
else if (input.substring(0, 1) == "k") {
var _01 = "k"
var _01new = _01.replace("k", "11")
}
else if (input.substring(0, 1) == "l") {
var _01 = "l"
var _01new = _01.replace("l", "12")
}
else if (input.substring(0, 1) == "m") {
var _01 = "m"
var _01new = _01.replace("m", "13")
}
else if (input.substring(0, 1) == "n") {
var _01 = "n"
var _01new = _01.replace("n", "14")
}
else if (input.substring(0, 1) == "o") {
var _01 = "o"
var _01new = _01.replace("o", "15")
}
else if (input.substring(0, 1) == "p") {
var _01 = "p"
var _01new = _01.replace("p", "16")
}
else if (input.substring(0, 1) == "q") {
var _01 = "q"
var _01new = _01.replace("q", "17")
}
else if (input.substring(0, 1) == "r") {
var _01 = "r"
var _01new = _01.replace("r", "18")
}
else if (input.substring(0, 1) == "s") {
var _01 = "s"
var _01new = _01.replace("s", "19")
}
else if (input.substring(0, 1) == "t") {
var _01 = "t"
var _01new = _01.replace("t", "20")
}
else if (input.substring(0, 1) == "u") {
var _01 = "u"
var _01new = _01.replace("u", "21")
}
else if (input.substring(0, 1) == "v") {
var _01 = "v"
var _01new = _01.replace("v", "22")
}
else if (input.substring(0, 1) == "w") {
var _01 = "w"
var _01new = _01.replace("w", "23")
}
else if (input.substring(0, 1) == "x") {
var _01 = "x"
var _01new = _01.replace("x", "24")
}
else if (input.substring(0, 1) == "y") {
var _01 = "y"
var _01new = _01.replace("y", "25")
}
else if (input.substring(0, 1) == "z") {
var _01 = "z"
var _01new = _01.replace("z", "26")
}
else (input.substring(0, 1) == " ")
{
var _01 = " "
var _01new = _01.replace(" ", "27")
}
alert(_01new)
}
main()
我知道有很多代码,我将简化它,但首先我想让它工作。
我想要做的是,当用户输入一个字符串(当前为1个字母)时,它会找到第一个字母的值,检测它是什么,并将_01的值设置为用户输入的内容,然后使用_01.replace将字母替换为其指定值(当前为字母数值)。
答案 0 :(得分:1)
您的逻辑将因多个字符而失败 只有当用户输入一个字符时,您对编码(/ decode)的想法才能完全有效。
如果用户输入说"mm"
作为字符串,该怎么办?它被编码为"1313"
,你永远不会知道如何正确解码它(好吧,除非你使用数组[13,13]
或其他一些加密法术;))
我会留给你的。
现在,一个字符的答案/建议 - 编号......
// Create an Object literal with mapped character replacements
var map = {
"a" : 1, // Or use some other fancy UTF8 characters or shuffle the order
"b" : 2,
"c" : 3,
// and so on...
"y" : 25,
"z" : 26,
" " : 27
}
function main() {
var input = prompt("Enter a character!");
var encrypted = -1; // Fallback number. (If no replacement found in our `map`)
// check if `map` has this "character" property
if ( map.hasOwnProperty(input[0]) ) {
// get the value from our map,
// where `input[0]` represents the first character
encrypted = map[input[0]];
}
alert( encrypted ); // Will alert the replacement number or log -1 as fallback
}
main()
TRY USING ONLY ONE OF: "a b c y z (space)"
这里的东西要简单得多 - 但也不太安全;)
您可以使用btoa()
MDN将字符串转换为base64
- 而且当您想要阅读“秘密消息”时,您只需执行{{ 3}}在编码的字符串上
function main() {
var input = prompt("Enter a string!").trim();
var encode = btoa( input ); // String to base64
var decode = "";
if ( !encode ) return; // Do nothing if nothing valid was entered
alert( encode );
// Whenever you want to reveal your secret message:
decode = atob( encode );
alert( "Hey I can also decode! Here you go:\n"+ decode);
}
main()
我看到你对这种东西感兴趣...所以google,了解 cyphers 和其他加密算法。首先探索基本的: