【问题标题】:Obfuscate text using JavaScript? [closed]使用 JavaScript 混淆文本? [关闭]
【发布时间】:2020-02-20 12:53:45
【问题描述】:

我希望混淆(使模糊、不清楚或难以理解)段落文本。本质上

  • 我需要能够控制它的开始和停止位置。
  • 我不希望人们预览源代码并获取隐藏的原始文本。
  • 模糊文本需要遵循原始格式 - 保持间距、换行符、大写和标点符号等。
  • 字母字符需要与另一个随机字母字符交换。

我正在尝试隐藏文章中的文字。使用 javascript 执行此操作的最佳方法是什么?

示例

请参阅Make book 中的以下示例

注意:我发现baffle library 做了类似的事情,但并没有完全完成这项工作......

【问题讨论】:

  • 问题是,如果客户端发生这种情况,客户端无论如何都可以看到要解码的函数。

标签: javascript node.js


【解决方案1】:

您可以使用 vanilla JavaScript 进行合理的尝试,同时注意 cmets 中的问题,特别是如果将原始文本发送给客户端,它们当然可以使用它。

let inputText = `“It Will Feed my Revenge!” To bait fish withal: if it will feed nothing else, it will feed my revenge. He hath disgraced me, and hindered me half a million; laughed at my losses, mocked at my gains, scorned my nation, thwarted my bargains, cooled my friends, heated mine enemies; and what's his reason?`;

function getRandomChar() {
   const characters = 'abcdefghijklmnopqrstuvwxyz';
   return characters.charAt(Math.floor(Math.random() * characters.length));
}

function getReplacement(char) {
  if (/^[^a-z]+$/i.test(char)) {
      return char;
  }
  let replacement = getRandomChar();
  if (char.toUpperCase() === char) {
      replacement = replacement.toUpperCase();
  }
  return replacement;
}

function obfuscate(text, start = 0, end) {
    end = end || text.length;
    const obfuscatedSection = Array.prototype.map.call(text.substring(start,end), getReplacement).join("");
    return text.substring(0, start) + obfuscatedSection + text.substring(end);
}

console.log("Original text:", inputText);
console.log("\nObfuscated text:", obfuscate(inputText, 15, 200));

【讨论】:

    猜你喜欢
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 2010-11-08
    相关资源
    最近更新 更多