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

3 月 3 日
 iamnottsh

能输入任意格式的文件,并且输出始终较短,输出长度与输入文件大小无关,原理是先用两个中文汉字作为标识符,再用 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
        });
    }
})

2182 次点击
所在节点    分享创造
13 条回复
bigtear
3 月 3 日
你这个域名有点东西啊
iamnottsh
3 月 3 日
@bigtear 长中文域名非常便宜,我建议大家都用抽象思维买域名
zoharSoul
3 月 3 日
什么意思, 没看懂啊...
iamnottsh
3 月 3 日
@zoharSoul 当网盘用就可以了,要给别人发点什么的时候,上传就能生成取件码,把取件码发给别人,别人再输进去解。与普通网盘不一样的是,它们取件码容易被检测出来,而我这个取件码能直接在各个平台上发出来。
summerwar
3 月 3 日
跳转到 https://saozi5-75am.ipfs.4everland.app/

然后 chrome 提示危险网站。

楼主检查下吧
myderr
3 月 3 日
额,这不是那中文当 key 吗,最多在使用 ai 写了个诗。
我理解的隐写是,我有一段显示的文本,我有一段待写入的文本,生成一份行的文本,但是保持显示的文本的意思。并且能解出来写入的文本
iamnottsh
3 月 3 日
@summerwar 我在慢慢迁移到新域名,但不是那么好迁,不知道谷歌发什么疯
iamnottsh
3 月 3 日
@myderr 确实不是传统隐写,但我又不知道叫什么
GPLer
3 月 3 日
虽然取件码不容易被检测了,但是这个域名本身就很危险。😂
iamnottsh
3 月 3 日
@GPLer 这倒确实,我在考虑再买个“我是奶龙我才是奶龙.xyz”
zoharSoul
3 月 3 日
@iamnottsh #4 哦哦 那感觉和隐写没什么关系啊
就是个 kv mapping 吧
iamnottsh
3 月 3 日
@zoharSoul 从隐写的定义上来说还是符合的,应用场景也重合,只有实现方式与以往的实践不同,就像无服务器算不算服务器、docker 算不算虚拟机
iamnottsh
3 月 3 日
@summerwar 好了,现在迁移好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1195522

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX