Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在保持字符串同样有效的情况下对其进行视觉置乱_Javascript_String - Fatal编程技术网

Javascript 在保持字符串同样有效的情况下对其进行视觉置乱

Javascript 在保持字符串同样有效的情况下对其进行视觉置乱,javascript,string,Javascript,String,这更像是一件有趣的事情,但因为我很好奇。。(这本质上是混淆,但我解释它是为了让每个人都能从中得到一些东西) 假设我们有一个字符串(~在JavaScript中): var str=“stackoverflow 现在,还要说这个字符串应该在视觉上模糊,这样如果你要通读的话,你就不会在那里看到stackoverflow,而是一些更难阅读的东西。我想把它转换成数字形式,然后把它转换成其他任何字符串。不知道这是否可能,b但是我会试试,因为它很有趣 所以,我的问题是,在保持字符串完全有效的情况下,你个人如何

这更像是一件有趣的事情,但因为我很好奇。。(这本质上是混淆,但我解释它是为了让每个人都能从中得到一些东西)

假设我们有一个字符串(~在JavaScript中):

var str=“stackoverflow

现在,还要说这个字符串应该在视觉上模糊,这样如果你要通读的话,你就不会在那里看到
stackoverflow
,而是一些更难阅读的东西。我想把它转换成数字形式,然后把它转换成其他任何字符串。不知道这是否可能,b但是我会试试,因为它很有趣

所以,我的问题是,在保持字符串完全有效的情况下,你个人如何做到这一点?我个人试着放入一堆正则表达式,它们对我自己的乐趣毫无用处。再说一遍,这更像是一种因为我很好奇的事情,可能不会被使用

例如:

var str = `s./\\t./ack;
var str = "c3RhY2tvdmVyZmxvdw";
alert(base64_decode(str)); // alerts "stackoverflow"
输出:

堆栈


显然,这段代码是完全不可能的,但它只是说明了我在看什么。

您可以将每个字符编码为一个字符实体:

"\u0073\u0074\u0061\u0063\u006b\u006f\u0076\u0065\u0072\u0066\u006c\u006f\u0077"
模糊处理(如果这是您的目标)基本上没有意义,但根据请求,
stackoverflow
在字符串中不再可见。执行编码的函数:

function uniencode(str) {
    function pad(str) {
        return Array(5 - str.length).join('0') + str;
    }

    return Array.prototype.map.call(str, function(c) {
        return '\\u' + pad(c.charCodeAt(0).toString(16));
    }).join('');
}

Base64非常常见。不幸的是,JavaScript不提供本机Base64支持,但您可以在PHPJS上找到和函数

例如:

var str = `s./\\t./ack;
var str = "c3RhY2tvdmVyZmxvdw";
alert(base64_decode(str)); // alerts "stackoverflow"
编辑:正如Charmander(喜欢这个名字^ ^)所指出的,一些浏览器(Firefox,Chrome…)实际上支持Base64。它们只是有一些非常奇怪的函数名:
btoa()
编码和
atob()
解码。



你能给出一个关于你的意思的前后描述吗?将其转换为二进制!可以很容易地用JavaScription本机完成这是一个很好的建议。为了好玩,我将尝试它,连同字符实体建议,我将看看它是如何工作的!Base64?替换密码?实际加密?真正的目标是什么?目标就是不能阅读代码中的纯文本字符串,但它可以像普通字符串一样被程序使用。有趣的想法是,您认为如何将其转换为unicode等价物?我很确定它会自动被解析并读取为它们所代表的字符。@JTApps:Kolink是正确的;解码是自动的。unicode转义In字符串是JavaScript语法的一部分。我还提供了一个函数来执行编码。您可能需要调整编码器函数,以考虑到较旧的浏览器不支持
Array.map
。啊,这是一个很好的观点。我有点忘记了。很公平。-抛出神奇宝贝球-:pNote某些浏览器提供和<代码> ATOB分别用于编码和解码。使用那些可用的。A.我喜欢这个。我会给这个看看。我想知道还有什么可能用于编码和解码,当然,哈希是不可能的。我会花一些时间研究HUH,好好考虑我的纠正。IM使用钛RI。现在,我将在API文档中介绍Base64。另外,很棒的名称@Charmander EDIT:Native Base64支持显然,我认为这一个非常简单,同时同样有效。我想我更喜欢这个选项(Base64),这只是因为它是迄今为止最容易实现的,并且简单地将代码保留在纯文本之外,而不必费心深入混淆,并且可以方便地知道=dw
\u 0x6ee4
变量的用途是什么?@Kolink没有用途,它的混淆:P@jbabey我很享受这种模糊化被认为是从嗡嗡声中模糊出来的一个,不是电脑…@Kolink“视觉上被模糊了,所以如果你要通读,你不会看到stackoverflow,而是一些更难阅读的东西。”-我认为OP是在谈论模糊处理。