Javascript文本数组数据加扰和解扰
我正在寻找超快速和紧凑的Javascript代码或函数来对存储在数组中的文本进行加扰和解扰 我只希望当用户使用浏览器进入“查看源代码”模式时,此文本不可读 有许多选项,如向ASCII码中添加固定数字,或对字符串进行布尔运算,如移位、反转、更改为八进制、十六进制等 我需要这两个文本和数字字符串。如果加扰后的代码不复杂且不带有“,”,#,$,&,/等符号,则最好是这样Javascript文本数组数据加扰和解扰,javascript,encryption,encoder,decoder,scramble,Javascript,Encryption,Encoder,Decoder,Scramble,我正在寻找超快速和紧凑的Javascript代码或函数来对存储在数组中的文本进行加扰和解扰 我只希望当用户使用浏览器进入“查看源代码”模式时,此文本不可读 有许多选项,如向ASCII码中添加固定数字,或对字符串进行布尔运算,如移位、反转、更改为八进制、十六进制等 我需要这两个文本和数字字符串。如果加扰后的代码不复杂且不带有“,”,#,$,&,/等符号,则最好是这样 var c = new Array(); c[0]=new Array( "Name","Home","City","Post co
var c = new Array();
c[0]=new Array( "Name","Home","City","Post code","Telephone","email","Web","Id","Number","xpos","ypos");
c[1]=new Array( "John","Street 123","1234","New York","555-1450123","john@demo.com","www.demo1.com","b",59,306380,565500);
c[2]=new Array( "Poul","Street 1234","2345","New York","555-7010123","poul@demo.com","www.demo2.com","i",113,308396,635477);
c[3]=new Array( "David","Street 12345","3456","New York","555-3111123","david@demo.com","www.demo3.com","i",129,377615,581358);
var Scrambler = function(n) { return ASCII(n)+1...; }
var DeScrambler = function(n) { return ASCII(n)-1...; }
$(function() {
for (var i = 0; i < c[0].length; ++i) {
for (var j = 0; j < (c.length); ++i) {
a[j][i] = DeScrambler(c[j][i]);
}
}
});
var c=new Array();
c[0]=新数组(“姓名”、“家庭”、“城市”、“邮政编码”、“电话”、“电子邮件”、“网络”、“Id”、“号码”、“xpos”、“YPO”);
c[1]=新数组(“约翰”、“123街”、“1234街”、“纽约”、“555-1450123街”、“纽约市”john@demo.com","www.demo1.com","b","59306380565500",;
c[2]=新阵列(“Poul”、“1234街”、“2345街”、“纽约”、“555-7010123街”poul@demo.com“,“www.demo2.com”,“i”,113308396635477);
c[3]=新数组(“大卫”、“12345街”、“3456街”、“纽约”、“555-311123街”、“纽约市”david@demo.com","www.demo3.com","i","129377615581358",;
var扰码器=函数(n){返回ASCII(n)+1…;}
var解扰器=函数(n){返回ASCII(n)-1…;}
$(函数(){
对于(变量i=0;i
有什么好主意吗?如果您对文本进行加扰,用户将能够看到正在传输的数据。如果您只想使用JS并使其通用,也许让服务器以UTF8字节的形式发送该数据?而且这不属于加密范围。加密和模糊处理不一样。我提供了一个指向github文件的链接,该文件基于和数据类型转换。我想你在哪里寻找这样的东西 (所有字节到UTF8字符串的操作都作为无符号字节完成)
(我同意@mishik minify(ing)您的代码是模糊处理的最佳方法之一)如何使用ROT47或其他替代密码?它实现简单、快速,并且不会增加字符串的长度。我提出了这个有效的解决方案来解决我的问题: 在这段代码中,如果可能的话,我想做得更好的事情很少 1) 在第33行中,我必须使用这个肮脏的技巧
“+c[I][j])
将数组中的数字转换为字符串。但当返回时,问题是数字不再是我数组中的数字!这非常快,但如果您有更好的主意,而不丢失数字定义,请告诉我。
2) 我正在使用2个版本的ROT13和ROT18。我发现了ROT13的一行代码版本:s.replace(/[a-zA-Z]/g,函数(c){return String.fromCharCode((c=(c=c.charCodeAt(0)+13)?c:c-26);};
如何以简单的方式向这些ROT13中添加数字和-@字母?
3) 正如你所看到的,我正在使用2D数组来存储我的代码。有更好的建议吗
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
var AscII = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@.-";
var ROT18 = "STUVWXYZ0123456789@.-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQR";
var c = new Array();
c[0]=new Array( "Name","Home","City","Post code","Telephone","email","Web","Id","Number","xpos","ypos");
c[1]=new Array( "John","Street 123","1234","New York","438-1450123","john@demo.com","www.demo1.com","b",59,306380,565500);
c[2]=new Array( "Poul","Street 1234","2345","New York","450-7010123","poul@demo.com","www.demo2.com","i",113,308396,6354772);
c[3]=new Array( "David","Street 12345","3456","New York","451-3111123","david@demo.com","www.demo3.com","i",129,377615,581358);
$(function() {
var Normal = function() {
var txt ="";
for (var i = 0; i < c.length; ++i) {
for (var j = 0; j < c[0].length; ++j) {
txt += ""+c[i][j] + ", ";
}
txt += "<br>";
}
$("#kData").html("<b>Normal ASCII<br></b>" + txt);
};
var Convert18 = function(Div, TxtFrom, TxtTo) {
var txt ="";
for (var i = 0; i < c.length; ++i) {
for (var j = 0; j < c[0].length; ++j) {
var ktxtX = decode((""+c[i][j]), TxtFrom, TxtTo);
c[i][j] = ktxtX;
txt += ktxtX + ", ";
}
txt += "<br>";
}
$(Div).html("<b>ROT18 + Numbers + @-_<br></b>" + txt);
};
var Convert13 = function(Div) {
var txt ="";
for (var i = 0; i < c.length; ++i) {
for (var j = 0; j < c[0].length; ++j) {
var ktxtX = rot13(""+c[i][j]);
// s.replace(/[a-zA-Z]/g,function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);});
c[i][j] = ktxtX;
txt += ktxtX + ", ";
}
txt += "<br>";
}
$(Div).html("<b>ROT13<br></b>" + txt);
};
var decode = function (txt, alphabet, substitution) {
return txt.split("").map(function (c) {
if (alphabet.indexOf(c) != -1) { return substitution.charAt(alphabet.indexOf(c)); }
else { return c; }
}).join("");
};
function rot13(str) {
return str.replace(/[a-zA-Z]/g, function(c) {
return String.fromCharCode((c <= 'Z' ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);
});
}
Normal();
Convert18("#kData2", AscII, ROT18);
Convert18("#kData3", ROT18, AscII);
Convert13("#kData4");
Convert13("#kData5");
$("#kData6").html("Finised - j:" + c[0].length + " - i:" + c.length);
});
</script>
</head>
<body>
<div id="kData"></div>
<div id="kData2"></div>
<div id="kData3"></div>
<div id="kData4"></div>
<div id="kData5"></div>
<div id="kData6"></div>
</body>
</html>
var AscII=”abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@.-";
变量18=”STUVWXYZ0123456789@.-abcdefghijklmnopqrstuvxyzabcdefghijklmnopqr”;
var c=新数组();
c[0]=新数组(“姓名”、“家庭”、“城市”、“邮政编码”、“电话”、“电子邮件”、“网络”、“Id”、“号码”、“xpos”、“YPO”);
c[1]=新数组(“约翰”、“123街”、“1234街”、“纽约”、“438-1450123街”、“纽约市”john@demo.com","www.demo1.com","b","59306380565500",;
c[2]=新阵列(“Poul”、“1234街”、“2345街”、“纽约”、“450-7010123街”poul@demo.com“,“www.demo2.com”,“i”,1133083966354772);
c[3]=新数组(“大卫”、“12345街”、“3456街”、“纽约”、“451-311123街”、“纽约市”、“纽约市”、“纽约市”等david@demo.com","www.demo3.com","i","129377615581358",;
$(函数(){
var Normal=函数(){
var txt=“”;
对于(变量i=0;i”;
}
$(“#kData”).html(“普通ASCII
”+txt);
};
var Convert18=函数(Div、TxtFrom、TxtTo){
var txt=“”;
对于(变量i=0;i”;
}
$(Div).html(“ROT18+Numbers+@-\
”+txt);
};
var Convert13=功能(Div){
var txt=“”;
对于(变量i=0;i”;
}
$(Div.html(“ROT13
”+txt);
};
var decode=函数(txt、字母表、替换){
返回txt.split(“”).map(函数(c){
if(alphabet.indexOf(c)!=-1){return substitution.charAt(alphabet.indexOf(c));}
else{return c;}
}).加入(“”);
};
功能rot13(str){
返回str.replace(/[a-zA-Z]/g,函数(c){
返回字符串.fromCharCode((c=(c=c.charCodeAt(0)+13)?c:c-26);
});
}
正常();
Convert18(“#kData2”,AscII,ROT18);
Convert18(“#kData3”,ROT18,AscII);
兑换13(“kData4”);
兑换13(“kData5”);
$(“#kData6”).html(“finished-j:+c[0].length+”-i:+c.length);
});
我把代码拷贝到
代码上?没有好的方法来隐藏你已经发送给用户的数据。如果你真的需要这个隐藏-考虑把它移到服务器端。感谢MISHIK快速回放。我完全意识到这个问题。首先,我不希望HTML代码可以直接由用户读取,第二个是S。我不想使用PHP或数据库。第三,我更想写一个适合我的代码