【发布时间】:2018-12-19 01:51:49
【问题描述】:
我想编写一个简单的加密函数,它将加密输入文本并生成可解密的输出,该输出也可以安全地通过 URL 查询作为参数传输。
This site 提供了一个很好的起点,但是,一些输出包含 '=' 和 '?'在查询中作为参数发送时效果不佳。代码转载如下:
var jsEncode = {
encode: function(s, k) {
var enc = "";
var str = "";
// make sure that input is string
str = s.toString();
for (var i = 0; i < s.length; i++) {
// create block
var a = s.charCodeAt(i);
// bitwise XOR
var b = a ^ k;
enc = enc + String.fromCharCode(b);
}
return enc;
}
};
var code = '1';
var e = jsEncode.encode("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789@,.-", code);
console.log(e);
var d = jsEncode.encode(e, code);
console.log(d);
我将无法使用任何外部库,只能使用 vanilla js。
输入只会是电子邮件,因此这些是我需要担心的唯一字符:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789@,.-
【问题讨论】:
标签: javascript jquery encryption