JS字符串“隐形”加密技术,完整源码。

技术原理:

JavaScript奇技淫巧:隐形字符_w2sfot的博客-CSDN博客

源码:

<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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值