IndexedDB
IndexedDB 是内置于网页浏览器的数据库,它让网站可以把大量结构化数据存放在访问者自己的设备上。它以异步方式工作,带索引地保存对象,并且为每个网站分别存放数据。
更新于 2026年11月8日
只在你的设备上可读。
对话只在你的设备上可读;开启同步后,其他设备上也可读。别处一概读不到。
我们读不了。
消息只是经过,不会留下记录;你的对话始终只以加密形式保存。
模型不知道你是谁。
它只收到问题,绝不会收到你的邮箱、账户或 IP 地址。
途中什么也不留下。
回复传回后加密保存在这里;即使开启同步,你的密钥也从不以明文到达我们这里。
工作原理
浏览器提供了好几个存放数据的地方。Cookie 很小,并且每次请求都会随之发往服务器。localStorage 保存较短的字符串,并以同步方式工作,所以大量使用会拖慢页面。IndexedDB 是为真正的大数据量设计的:它可以存放 JavaScript 对象、照片、音频片段和其他二进制数据,支持用于快速查找的索引,以及要么全部完成、要么不留下半截数据的事务,并在后台运行,让页面保持流畅。读写返回 Promise 或触发事件,而不是阻塞,这适合大批量导入和很长的列表。像 Dexie 这样的库,让它的编程接口更容易使用。典型的用途有离线邮件客户端、笔记工具、地图瓦片、游戏存档和绘图应用。
存储与网站的来源绑定,所以别的网站读不到。但这不等于保密。默认情况下,数据没有加密:任何能访问设备上浏览器配置文件的人,或者在同一网站上运行的任何脚本,都能读取它。配额由网站存储的所有内容共享,并随浏览器和磁盘剩余空间而不同。隐私浏览窗口通常在关闭时清空一切,有些浏览器还会限制网站能写入的量。当你清除网站数据,或者磁盘空间不足而网站又没有申请持久存储时,浏览器也可能把它删除。
这就是为什么认真对待的本地应用会加上自己的保护。Web Crypto API 允许页面生成一个密钥,并把它标记为不可导出,意思是页面可以用它加密和解密,却没有任何脚本能读到它的字节。内容在写入 IndexedDB 之前就被加密,只在显示时才解密;把每条记录分别封存,可以避免一个损坏的条目毁掉其余的内容。这能防住有人从丢失的笔记本电脑上复制文件,却防不住在页面内部运行的恶意代码,所以网站上严格的安全策略同样重要。
在 NeverNo 中
你在 NeverNo 上创建的一切,都存放在名为 neverno 的 IndexedDB 数据库里,只在这个浏览器中:对话、消息、文件夹、图片、视频和声音、你创建的角色、记忆,以及你私密保险箱里的文档。首次使用时,浏览器会创建一个不可导出的 AES-256-GCM 密钥,它留在同一数据库的密钥表中,从不离开设备。每一项内容都用随机向量单独加密,所以不存在需要打开的单个文件。打开开发者工具的“应用”标签页,可以看到这个数据库和它的表,封存的字段显示为无法阅读的密文。
为了不必解密一切,也能给对话排序和查找,有少数标记保持可读:ID、日期和所用的模型。临时对话则完全不会写入数据库。在设置里清除所有内容,或清除网站数据,会删除数据库和密钥。阿里巴巴的 Qwen 3.5 35B 在 NeverNo 上免费,能看图,也让你选择是否推理;它的回复到达你的浏览器,你的历史记录就在那里加密保存。
值得记住
它在浏览器中存放带索引和事务的大型结构化数据,且不会让页面卡住。
隔离是按网站划分的,但加密不是自动的:保护需要自己添加。
不可导出的密钥让应用能加密内容,而没有任何脚本能读到密钥本身。
清除网站数据会删除数据库,所以请保留一份导出或备份。
常见问题
IndexedDB 和 localStorage 是一回事吗?
不是。localStorage 以同步方式保存较短的字符串;IndexedDB 则成批处理结构化的对象和文件,带有索引和事务。NeverNo 把历史记录放在 IndexedDB 里,只把少数界面偏好以明文放在 localStorage 里。
IndexedDB 里的数据对其他网站是安全的吗?
是的:网站只能读取它自己的数据库。使用同一个浏览器配置文件的人则另当别论,所以 NeverNo 在存储之前,用浏览器拒绝导出的密钥加密每一项内容。
怎样把我的 NeverNo 数据从浏览器里取出来?
把历史记录导出为可读的文件,创建一份用密语封存的备份,或者用账户打开加密同步。如果没有做其中任何一项就清除了网站数据,数据库和密钥就会永久消失。
问出你的第一个问题
无需账户,无需银行卡。NeverNo 会 10 种语言,用哪种写都行。
打开聊天