标签 base64 下的文章

文本编码转换器在线工具分享

大家好,今天给大家推荐一款我基于 Vue.js 精心开发的实用在线工具——文本编码转换器

在日常上网或编程开发中,我们经常会遇到各种看不懂的“乱码”或者需要特定格式的字符。比如网页源代码里的 中,或者是 Base64 编码的加密字符串。为了方便大家快速进行格式转换,我开发了这个全能的文本编码转换工具。

在线工具网址:https://see-tool.com/encoding-converter

工具截图:
在这里插入图片描述

为什么开发这个工具?

虽然网上有很多类似的工具,但往往功能单一,界面简陋,或者广告满天飞。作为一个对用户体验有追求的开发者,我利用 Vue 的响应式特性,打造了这款无广告、反应快、支持格式全的在线转换器。

核心功能介绍

这款工具目前支持 12种 常见的编码格式相互转换,堪称“编码界的瑞士军刀”:

  • 基础格式:普通文本、二进制 (Binary)、八进制、十进制、十六进制 (Hex)
  • Web开发:Base64、HTML实体 (十进制/十六进制)、Punycode (域名编码)
  • 字符编码:Unicode 转义 (\uXXXX)、Unicode 码点 (U+XXXX)、UTF-8 Hex

无论你是想把一串文字转换成 0101 的二进制代码装酷,还是解析一段不明所以的 Base64 字符串,它都能轻松搞定。

使用场景与特色

  1. 所见即所得:得益于 Vue 的高效性能,工具采用实时计算模式。你在左边输入,右边立刻显示结果,无需频繁点击“转换”按钮,体验丝般顺滑。
  2. 高度自定义:为了满足程序员的需求,支持自定义输出的分隔符(空格、逗号、冒号等)和前缀(如 0x, \x),甚至可以选择输出结果是否大写。
  3. 双向互转:点击中间的交换按钮,即可一键互换输入和输出格式,加密解密一步到位。
  4. 字符深度分析:除了整段转换,工具还贴心地提供了“字符详情”功能。当输入少量文字时,会自动分析每个字符的 Unicode 码点、UTF-8 字节序列等深层信息,是学习字符编码原理的好帮手。

安全隐私

请放心使用,本工具是纯前端应用。所有的转换计算都在你的浏览器本地完成,不会上传任何数据到服务器。你的文本内容绝对安全隐私,即便是敏感数据也能放心处理。

希望这个小工具能成为你数字生活中的得力助手。欢迎收藏使用,如果有任何建议或发现 Bug,也欢迎随时反馈给我!

因为测试 nano banana api 接口需要,所以临时让 gemini 写了一个 base64 图片预览工具,仓库如下:

https://github.com/poixeai/base64-image-viewer

粘贴 Base64 图片字符串,或者 Gemini Nano Banana 的完整 JSON 响应体,直接渲染预览图片。

纯 HTML + CSS + JS ,本地双击打开工具页面就可以用了。


顺便感慨一句:AI 时代做这种小工具的成本真的低——“让 AI 写一个”往往比以前去 GitHub / 搜索引擎翻半天更快。

base64-image-viewer

  1. 提示词里缺“触发令牌”
    原因

NanoBanana 的微调语料里,图像样本前面都有固定令牌,比如 <|im_gen|><|image|>。如果提示词里一个都没有,模型默认走“纯文本”分支。

办法

在开头或结尾硬塞一个官方文档里提到的图像令牌;找不到文档就简单粗暴写“生成一张 1024×1024 图片:……”,成功率立刻上去。

  1. 系统把提示当成“违规”却静默放行
    原因

安全模块返回 4xx 时,前端为了用户体验不弹红字,而是回退到“文字摘要”。

办法

先拿最无害的提示做“对照实验”(例如“一只白色背景的红苹果”)。若苹果能出图,说明之前提示踩线;逐字段删改,定位敏感词后换近义词或拼音缩写即可。

  1. 免费包“用完”但后台不提醒
    原因

免费额度按“token”扣,失败重试也扣;扣完不弹窗,只返回文本。

办法

登录控制台看“今日已用 token”柱状图;若柱子顶到上限,立刻换付费 key 或等 UTC-0 点重置。

  1. 高峰排队,服务器返回“空图”占位符
    原因

并发高时,推理节点把请求降级,返回 200 但 body 里只有文字说明。

办法

避开太平洋时间上午 9–11 点、北京时间晚上 8–10 点;或者用付费队列优先级 key,走独享通道。

  1. 生图尺寸写错,触发保护性回退
    原因

NanoBanana 训练最大边长 1152 px;写成 2048 会越过安全阈值,模型直接回退文本。

办法

把最长边改到 1152 以内,比例保持 1:1、4:3、16:9 三种之一,再测一次。

  1. 调用链里“stop sequence”截胡
    原因

有些封装库把 \n\n 设为 stop,结果图片 base64 刚回来就被截断,前端解析失败,只把之前累积的文字吐出来。

办法

把 stop sequence 设成官方推荐的 <|endoftext|>,或者干脆留空。

  1. base64 被“安全插件”当 XSS 过滤
    原因

公司/校园网网关、本地杀毒把“data:image/png;base64,……”当成可疑脚本直接拦掉,页面 fallback 到纯文本。

办法

关闭本地安全插件,或把域名加入白名单;手机热点对比测试可快速定位。

  1. 浏览器缓存把“旧空响应”锁死
    原因

第一次请求失败,CDN 把 404 缓存 5 min,后续一直返回空。

办法

Ctrl+Shift+R 强刷,或改一个随机 query string(?t=1234)绕过缓存。

  1. 账号被“限速”却没有任何提示
    原因

同 IP 多账号高频调用会触发隐形限速,返回 200 但 body 无图。

办法

① 降频到 6 s 以上间隔;② 给每个账号单独绑定独立静态 IP;③ 走付费高速通道。

  1. 出口 IP 被“区域风控”挡在门外
    原因

NanoBanana 的 CDN 用 GeoIP+信誉分双重过滤:

  • 数据中心、机房 IP → 信誉分低 → 直接拒绝生图,只返回文字。
  • 住宅 IP 但一天内被 200+ 设备共用 → 同样进黑名单。

办法

租一条“海外原生静态住宅 IP”,让请求看上去来自真实家庭宽带。

落地步骤(以 Novproxy 为例,零代码也能操作):

  1. 打开 https://novproxy.com?kwd=tt-q ,注册后选“Static ISP”类型,地区选“US-West”或“EU-Central”,这两个段在 NanoBanana 的白名单里权重最高。
  2. 购买后把“IP:Port:Username:Password”四段复制下来。
  3. 在电脑系统设置 → 网络 → 代理 → 手动代理,填进去;或者直接在浏览器装 SwitchyOmega,建一个情景模式,把“api.nanobanana.ai”走这条代理。
  4. 重新登录 NanoBanana,先跑“一只红苹果”测试;若能秒出图,再跑原提示词,90% 以上概率恢复。
  5. 长期方案:把静态 IP 跟账号一对一绑定,不要在公共 WiFi、公司网络来回切换,信誉分会持续累积,越用越稳。

小结口诀
“先令牌,后提示;再配额,再排队;尺寸别超限,base64 别被截;缓存要清掉,IP 要住宅。”

按这个顺序逐项排查,基本能在 10 分钟内把“只出文字不出图”拆干净。祝你早日把脑中的画面稳稳落地成图。

0x01 前奏

本文作者RG@M78sec,感谢团队师傅投稿

前不久在挖掘某SRC时提交漏洞时,偶然在该SRC官网的编辑器发现了一个接口。

起初以为是任意文件包含能RCE了,后来测试发现只是拼接读取了远程资源站的图片,原本都想着放弃了

但是当我在后缀添加了个+号后图片被意外的解析成了HTML页面,这不就意味着get到一个存储型XSS?

https://xxx.cn/xxxx/ueditor?image_name=/xxx.png+

接着测试发现拼接图片在一个二级目录下,尝试穿越发现存在自研WAF,于是Fuzz了下Payload成功Bypass。

WAF:

Bypass:

Payload:

/..%252F/

0x02 漏洞利用

1.利用010Editor或copy命令,制作含有恶意代码的图片。

copy tiny.png /b + code.txt /a tiny_code.png


2.通过本站的文件上传恶意图片,取得文件名(之所以用png格式是因为jpg会校验是否为正常图片)。

3.由于该SRC官网财务打款需要手机个人信息(姓名,手机号,sfz等),而这些信息用户自己是可见的。

我们直接编写了一个demo.js用于读取受害者个人信息,将其部署在XSS平台。

脚本会通过Ajax请求URL,使用DOMParser转换并解析DOM对象,提取用户身份证、银行卡、手机号、地址等信息后合并base64发送到XSS平台,找了团队的几个朋友测试OK。

4.构造跳转网站,诱导受害者访问:

这时只要受害者访问该服务,跳转至恶意页面就能获取信息。


成功窃取到受害者的信息,base64解码即可。

0x03 技术点总结

1.Fuzz出接口及参数,拼接+号解析成HTML页面。

2.URL拼接时BypassWAF进行目录穿越。

3.使用DOMParser转换为DOM对象并提取表单input值,后通过window.btoa函数base64编码字符串。