Nonsense Encryptor: 一个在线文本替换编码工具

⚡快速体验
📄 项目简介
Nonsense Encryptor是一个有趣的、纯前端实现的在线文本转换工具。
它能将您输入的任何文本(包括中文、英文、Emoji等)基于一个完全由您自定义的字符表,转换成一串看起来毫无意义的“乱码”文本。当然,它也能将这串“乱码”精确地还原为原始内容。
该工具的所有操作均在您的浏览器本地完成,不涉及任何服务器通信,确保您的数据绝对安全和私密。
✨ 主要功能
- 高度可定制: 用户可以完全自定义16个替换字符,作为
0-F十六进制的“密码表”,创造出独一无二的编码风格。 - 强大的兼容性: 底层采用
UTF-8编码,支持对全球各种语言文字及 Emoji 表情进行转换,无乱码烦恼。 - 纯粹的本地计算: 100% 客户端逻辑,无需后端服务。您的输入内容和自定义密码表绝不会离开您的设备,保障隐私安全。
- 友好的用户体验:
- 实时验证:在应用替换表时,系统会智能检测输入是否符合要求(如重复、空值等)。
- 深色模式:自动适应或手动切换深色/浅色主题,并记忆您的选择。
- 快速填充:提供快速填充功能,一键生成一组不重复的字符用于替换表。
- 响应式设计:在桌面和移动设备上均有良好的显示和操作体验。
- 一键复制: 方便地将生成的结果复制到剪贴板。
🚀 使用指南
整个过程非常简单,只需三步:定义密码 -> 编码文本 -> 解码文本。
核心步骤
定义替换表: 在页面旁的 “自定义替换表 (0-F)” 区域,为您能看到的
0到F这16个十六进制字符,分别指定一个用于替换的、独一无二的字符。- 您可以手动填写,也可以在 “输入字符快速填充” 输入框中填入一串不重复的字符(例如
齁哦噢喔咕咿嗯啊~哈!唔哼❤呃呼),然后点击 “填充” 按钮来快速设置。
- 您可以手动填写,也可以在 “输入字符快速填充” 输入框中填入一串不重复的字符(例如
应用并验证: 点击 “应用并验证” 按钮。系统会检查您的替换表是否合规。验证通过后,这个自定义的“密码表”就会在当前页面生效。
开始转换:
- 编码: 在页面中间上方的文本框中输入任意文本,点击 “编码” 按钮。下方文本框中会立刻显示用您的自定义字符集加密后的结果。
- 解码: 将已编码的“乱码”字符串粘贴到上方的文本框中,点击 “解码” 按钮。原始文本就会被还原并显示在下方。
🛠️ 技术细节
工作流程
编码和解码的过程是一个严谨的逆向操作:
编码过程
- 文本 -> UTF-8 字节流: 使用
TextEncoderAPI 将用户输入的字符串转换为UTF-8编码的字节数组(Uint8Array)。 - 字节流 -> 十六进制字符串: 遍历字节数组,将每个字节转换为两位的小写十六进制字符串(例如
中->e4b8ad)。 - 字符替换: 遍历上一步生成的十六进制字符串,根据用户在替换表中定义的映射关系(
customMap),将每个十六进制字符(0-f)替换为对应的自定义字符。
解码过程
- 逆向替换: 遍历编码后的字符串,根据解码映射表(
customReverseMap),将每个自定义字符还原为其所代表的十六进制字符(0-f)。 - 十六进制字符串 -> UTF-8 字节流: 将还原后的十六进制字符串按每两位进行分割,并解析成
UTF-8字节数组。 - 字节流 -> 文本: 使用
TextDecoderAPI 将该字节流解码回原始的可读文本。期间若遇到无效字节序列,会抛出错误,从而保证了解码的准确性。
主要技术点
- 核心API:
TextEncoder和TextDecoder: 用于在文本字符串和UTF-8字节流之间进行高效、标准的转换。
- DOM 操作:
- 完全使用原生
document.getElementById和document.createElement等方法进行元素获取和动态内容生成。
- 完全使用原生
- 样式与布局:
- 使用 CSS 变量 (
var()) 配合body上的 class (.dark-mode) 来实现动态主题切换。 - 主要采用
Flexbox和Grid进行页面布局,确保结构清晰且易于维护。 - 通过
@media查询实现响应式布局,适配不同尺寸的屏幕。
- 使用 CSS 变量 (
- 本地存储:
localStorage用于持久化用户的主题偏好(深色/浅色),提升了再次访问时的体验。
- 零依赖:
- 整个项目未使用任何第三方 JavaScript 框架或库(如 React, Vue, jQuery),展现了原生Web API 的强大能力。