[js] 文档加密

功能

文档树文档加密(非真正的加密)

注意: 该代码并不会加密原文,只是打开文档需要输入密码而已,且是前端加密,专业人员可以通过访问 js 源码分析出密码,因此请勿用于重要信息的保密!

使用说明

1 文档树右键选择加密/取消加密即可

image.png

2 查看所有加密文档(把下面的代码粘贴到任意文档中即可)

{{//!js_esc_newline_return (async ()=>{_esc_newline_ const ids = await fetchSyncPost("/api/file/getFile", {path:'/data/storage/encrypted_ids.json'});_esc_newline_ const result = await fetchSyncPost('/api/query/sql', { "stmt":`select id, content from blocks where id in( ${ids.map(item=>`'${item}'`).join(',')})` });_esc_newline_ const timer=setInterval(()=> {_esc_newline_ if(!item.querySelector('.protyle-wysiwyg__embed')) return;_esc_newline_ clearInterval(timer);_esc_newline_ if(!result || !result.data) return;_esc_newline_ result.data.forEach((row)=>{_esc_newline_ item.querySelector(`.protyle-wysiwyg__embed[data-id="${row.id}"]`).innerHTML = row.content;_esc_newline_ });_esc_newline_ });_esc_newline_ return ids;_esc_newline_})();}}

3 注意:暂不支持文件夹,不过可以通过先获取文件夹所有文档的 id 后放入/data/storage/encrypted_ids.json 文件中实现

4 所有文档共用一个密码,一个解密所有都解密(暂不支持对单个文档单独设置密码)

5 参数 const pw = '12345123abcde45667890'; 是解密密码,前中后各 5 个字符的干扰码,所以你的真实密码在两边,可通过修改 getRealPw 函数的默认参数,修改干扰码个数,所以默认密码是 123456

6 参数 const expireTime = 0; 是解密后的过期时间,单位秒,0 代表不过期,即直到下次刷新页面前一直有效

7 加密的文档 id 存储在 /data/storage/encrypted_ids.json 文件中

代码

https://gitee.com/wish163/mysoft/blob/main/%E6%80%9D%E6%BA%90/%E5%8A%A0%E5%AF%86%E6%96%87%E6%A1%A3.js

效果

image.png

image.png

【免责声明】

由于涉及文件隐私或保密,请不要对重要信息使用该功能,使用前请做好备份工作,由此带来的任何后果自负!!!均与作者及代码无关!!!

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    25893 引用 • 107287 回帖
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    177 引用 • 1255 回帖
1 操作
wilsons 在 2025-03-19 21:58:30 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • Sakurarinkos 1 评论 via Android

    有点意思,有点担心,会不会出现一些奇奇怪怪的 bug

    哈哈哈,你的担心是对的,发现了再反馈,目前只想到,加载文档和预览及嵌入块,新窗口打开,搜索预览,模式切换/导出预览,其他情况是否也会显示原文还没考虑到。
    wilsons
  • 其他回帖
  • queguaiya

    看了一下,是通过拦截编辑器加载实现的,理论上不可能影响笔记数据本身,如果是担心这一点就大可放心 😄

  • wilsons 1

    @CongSec 刚修复了嵌入块显示 bug 问题,建议更新。

  • 电脑端和平板端测试下没有问题,移动端打开不知道为什么好像有时候还是会显示原文

    1 回复
  • 查看全部回帖
wilsons
正在努力开发 wilsons 工具箱中 🛠️ 目前已正式入驻爱发电啦!💖 想催更、提需求?欢迎访问 👉 https://afdian.com/a/wilsons

推荐标签 标签

  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    32 引用 • 108 回帖
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    127 引用 • 169 回帖 • 1 关注
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 385 关注
  • sts
    2 引用 • 2 回帖 • 239 关注
  • Access
    1 引用 • 3 回帖 • 5 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    246 引用 • 1338 回帖
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 270 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 34 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    180 引用 • 3878 回帖
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    588 引用 • 3528 回帖
  • 笔记

    好记性不如烂笔头。

    310 引用 • 794 回帖
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 199 关注
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 66 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 16 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    20 引用 • 37 回帖 • 578 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    198 引用 • 543 回帖
  • 印象笔记
    3 引用 • 16 回帖 • 1 关注
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 560 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    20 引用 • 245 回帖 • 227 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 157 关注
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖
  • OnlyOffice
    4 引用 • 25 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 705 关注