我正试图找到一种简单的方法来记录并暂时模糊我在Markdown写的“测验”问题的答案。 (我会在演示期间告诉学生测验答案,所以我不是在寻找任何类型的安全加密。)
我以为我可以使用btoa()
然后告诉学生他们可以在开发者工具面板中使用btoa( atob('one') )
来反转这个过程。但是以下不会返回'one':
'one'
有谁知道为什么这不会返回matching_words = []
for word in source_of_words:
matching_words.append(word)
print(matching_words)
?是否有其他内置于JavaScript中的方法可以让人们对消息进行松散加密和解密? (我正在与绝对的初学者合作,他们可能会被功能混淆,并且在尝试向页面添加库时会非常困惑。)
答案 0 :(得分:2)
这就是原因。
在Base64编码中,输出编码String的长度必须为a 3.如果不是,则输出将被额外填充 填充字符(
=
)。在解码时,这些额外的填充字符将 被丢弃。
var string1 = "one",
string2 = "one2";
console.log("Value of string1", string1)
console.log("Decoded string1", atob(string1))
console.log("Encoded string1", btoa(atob(string1)))
console.log("-------------------------------------")
console.log("Value of string2", string2)
console.log("Decoded string2", atob(string2))
console.log("Encoded string2", btoa(atob(string2)))
答案 1 :(得分:1)
正如@george指出的那样,在使用btoa()
之前必须使用atob()
:
atob( btoa( 'hello' ) )