V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
iamnottsh
V2EX  ›  分享创造

基于千问大模型的中文自然语言隐写术

  •  
  •   iamnottsh · 9 天前 · 861 次点击

    能输入任意格式的文件,并且输出始终较短,输出长度与输入文件大小无关,原理是先用两个中文汉字作为标识符,再用 ai 造句

    Demo:清冷仙子哦齁齁齁.xyz

    例如:

    山间清
    泉潺潺流过,恰逢
    戊日,村民依俗取水祈福。
    

    能解出:

    你好,世界!
    

    为了能活得久一点,选择闭源

    这里贴出核心代码(注意前端要把括号替换为换行符):

    import type { ChatCompletion } from "openai/resources.js";
    import { httpAction } from "./_generated/server";
    import OpenAI from 'openai';
    
    export default httpAction(async (_, req) => {
        try {
            const word = new URL(req.url).searchParams.get('word');
            if (!word) return new Response("Missing 'word' parameter", {
                status: 400
            });
            const [w0, w1] = word
            if (!w0 || !w1) return new Response("Length must be 2", {
                status: 400
            });
            const openai = new OpenAI({
                baseURL: "https://apis.iflow.cn/v1",
                apiKey: "你的 apiKey" // todo 填写 apiKey
            });
            for (;;) {
                const completion: ChatCompletion = await openai.chat.completions.create({
                    model: "qwen3-max",
                    messages: [
                        {
                            "role": "system",
                            "content": `你是句子生成器,按用户的要求输出一个句子,必须避免敏感。现在是${new Date()}。`
                        },
                        {
                            "role": "user",
                            "content": `用“${w0}”“${w1}”造句,“${w0}”在前“${w1}”在后,但不能放在句首。如果可以,减少以“他”开头,实在不行也没办法。`
                        }
                    ],
                });
                const content = completion.choices[0]?.message.content
                if (!content || !content.includes(w0) || !content.includes(w1) || content.startsWith(w0) || content.indexOf(w0) > content.indexOf(w1)) continue;
                const newHeaders = new Headers();
                newHeaders.set('Access-Control-Allow-Origin', 'https://saozi5-75am.ipfs.4everland.app');
                return new Response(content.replace(w0, `「${w0}」`).replace(w1, `「${w1}」`), {
                    headers: newHeaders
                });
            }
        } catch (e) {
            return new Response(String(e), {
                status: 500
            });
        }
    })
    
    
    13 条回复    2026-03-03 21:10:06 +08:00
    bigtear
        1
    bigtear  
       9 天前
    你这个域名有点东西啊
    iamnottsh
        2
    iamnottsh  
    OP
       9 天前 via iPhone
    @bigtear 长中文域名非常便宜,我建议大家都用抽象思维买域名
    zoharSoul
        3
    zoharSoul  
       9 天前
    什么意思, 没看懂啊...
    iamnottsh
        4
    iamnottsh  
    OP
       9 天前 via iPhone
    @zoharSoul 当网盘用就可以了,要给别人发点什么的时候,上传就能生成取件码,把取件码发给别人,别人再输进去解。与普通网盘不一样的是,它们取件码容易被检测出来,而我这个取件码能直接在各个平台上发出来。
    summerwar
        5
    summerwar  
       9 天前
    跳转到 https://saozi5-75am.ipfs.4everland.app/

    然后 chrome 提示危险网站。

    楼主检查下吧
    myderr
        6
    myderr  
       9 天前
    额,这不是那中文当 key 吗,最多在使用 ai 写了个诗。
    我理解的隐写是,我有一段显示的文本,我有一段待写入的文本,生成一份行的文本,但是保持显示的文本的意思。并且能解出来写入的文本
    iamnottsh
        7
    iamnottsh  
    OP
       9 天前 via iPhone
    @summerwar 我在慢慢迁移到新域名,但不是那么好迁,不知道谷歌发什么疯
    iamnottsh
        8
    iamnottsh  
    OP
       9 天前 via iPhone
    @myderr 确实不是传统隐写,但我又不知道叫什么
    GPLer
        9
    GPLer  
       9 天前 via Android
    虽然取件码不容易被检测了,但是这个域名本身就很危险。😂
    iamnottsh
        10
    iamnottsh  
    OP
       9 天前 via iPhone
    @GPLer 这倒确实,我在考虑再买个“我是奶龙我才是奶龙.xyz
    zoharSoul
        11
    zoharSoul  
       9 天前
    @iamnottsh #4 哦哦 那感觉和隐写没什么关系啊
    就是个 kv mapping 吧
    iamnottsh
        12
    iamnottsh  
    OP
       9 天前 via iPhone
    @zoharSoul 从隐写的定义上来说还是符合的,应用场景也重合,只有实现方式与以往的实践不同,就像无服务器算不算服务器、docker 算不算虚拟机
    iamnottsh
        13
    iamnottsh  
    OP
       9 天前
    @summerwar 好了,现在迁移好了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1073 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 22:50 · PVG 06:50 · LAX 15:50 · JFK 18:50
    ♥ Do have faith in what you're doing.