我在 about:blank 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 将字母替换为其分配的值(当前为字母数值)。
最佳答案
您的逻辑将因多个字符而失败。
只有当且仅当用户输入 one 字符时,您的 encode(/decode) 想法才能发挥作用。
如果用户输入 say "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 将 string 转换为 base64
- 当你想阅读“ secret 消息”时,你可以简单地做btoa()
MDN在编码字符串上
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()
我看到你对这类东西感兴趣...所以谷歌,了解密码和其他加密算法。从探索基本的开始:
关于javascript - 如何使用 if else 条件替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48231568/