[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

【免责声明】

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

  • 思源笔记

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

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

    26698 引用 • 111185 回帖
  • 代码片段

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

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

    225 引用 • 1589 回帖 • 1 关注
1 操作
wilsons 在 2025-03-19 21:58:30 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • wilsons 1

    已修复,用新代码试试

    0.0.2 修复偶发显示原文的 bug;默认密码框自动获取焦点;默认过期时间改为 30 秒

    为什么默认过期时间改为 30 秒?

    因为所有文档共用一个密码,如果默认不过期,当有一个文档解密后,用户再加密其他文档,在无刷新的情况下,打开刚加密的文档并不要求输入密码,这容易给用户错觉是 bug。

    1 操作
    wilsons 在 2025-03-29 10:17:50 更新了该回帖
  • 其他回帖
  • wilsons 1

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

  • wilsons

    0.0.5 修复搜索预览切换和刷新显示明文问题

    @participants

  • wilsons 1

    @CongSec 0.0.4 修复搜索预览和模式切换/导出预览被加载显示 bug,建议更新。

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

推荐标签 标签

  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    38 引用 • 158 回帖
  • gRpc
    11 引用 • 9 回帖 • 103 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖 • 1 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 621 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 505 关注
  • IPFS

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

    20 引用 • 245 回帖 • 240 关注
  • 自由行
    1 关注
  • sts
    2 引用 • 2 回帖 • 247 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 40 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    6 引用 • 26 回帖 • 545 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    36 引用 • 200 回帖 • 40 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 649 关注
  • 小说

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

    32 引用 • 108 回帖
  • OneNote
    1 引用 • 3 回帖 • 1 关注
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 45 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 4 关注
  • 招聘

    哪里都缺人,哪里都不缺人。

    188 引用 • 1057 回帖
  • VirtualBox

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

    10 引用 • 2 回帖 • 15 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 451 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    187 引用 • 1021 回帖
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 563 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    201 引用 • 120 回帖
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1742 回帖
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 808 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    101 引用 • 905 回帖 • 2 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 831 关注