js 数据加密解密(JS字符串隐形加密技术)
技术原理请见文章:JavaScript奇技淫巧:隐形字符,接下来我们就来聊聊关于js 数据加密解密?以下内容大家不妨参考一二希望能帮到您!
js 数据加密解密
技术原理请见文章:
JavaScript奇技淫巧:隐形字符
源码:
<html>
<h2>字符串隐身术</h2>
<textarea id="code" style="font-size:9px; height:500px; width: 600px;">
console.log = function(){
for(i=0; i<arguments.length;i ){
document.getElementById("log").innerHTML = arguments[i];
}
document.getElementById("log").innerHTML = "<br>";
}
function text_2_binary(text){
return text.split('').map(function(char){ return char.charCodeAt(0).toString(2)}).join(' ');
}
function binary_2_hidden_text(binary){
return binary.split('').map(function (binary_num){
var num = parseInt(binary_num, 10);
if (num === 1) {
return '\u200b';
} else if(num===0) {
return '\u200c';
}
return '\u200d';
}).join('\ufeff')
}
var text = "jshaman是专业且强大的JS代码混淆加密工具";
var binary_text = text_2_binary(text);
var hidden_text = binary_2_hidden_text(binary_text);
console.log("原始字符串:",text);
console.log("二进制:",binary_text);
console.log("<h2>隐藏字符:</h2>",hidden_text,"隐藏字符长度:",hidden_text.length);
function hidden_text_2_binary(string){
return string.split('\ufeff').map(function(char){
if (char === '\u200b') {
return '1';
} else if(char === '\u200c') {
return '0';
}
return ' ';
}).join('')
}
function binary_2_Text(binaryStr){
var text = ""
binaryStr.split(' ').map(function(num){
text = String.fromCharCode(parseInt(num, 2));
}).join('');
return text.toString();
}
console.log("隐形字符转二进制:",hidden_text_2_binary(hidden_text));
console.log("二进制转原始字符:",binary_2_Text(hidden_text_2_binary(hidden_text)));
</textarea>
<br>
<button onclick="eval(document.getElementById('code').value);">执行JS代码</button>
<br>
<div id="log"></div>
</html>
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com