[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

【免责声明】

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

  • 思源笔记

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

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

    25125 引用 • 103576 回帖
  • 代码片段

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

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

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

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 电脑端和平板端测试下没有问题,移动端打开不知道为什么好像有时候还是会显示原文

    1 回复
  • Sakurarinkos 1 评论

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

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

    已修复,用新代码试试

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

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

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

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

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

  • wilsons 1

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

wilsons
人生最大的敌人是自己,战胜自己,才能超越一切。

推荐标签 标签

  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    432 引用 • 1250 回帖 • 597 关注
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    88 引用 • 139 回帖 • 1 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 608 关注
  • 浅吟主题

    Jeffrey Chen 制作的思源笔记主题,项目仓库:https://github.com/TCOTC/Whisper

    1 引用 • 28 回帖
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    556 引用 • 675 回帖
  • Elasticsearch

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

    117 引用 • 99 回帖 • 209 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 133 关注
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖
  • Electron

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

    15 引用 • 136 回帖
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖 • 1 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    948 引用 • 1460 回帖
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 724 关注
  • 倾城之链
    23 引用 • 66 回帖 • 163 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用 • 1 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    143 引用 • 442 回帖
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 413 关注
  • OnlyOffice
    4 引用 • 21 关注
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    151 引用 • 257 回帖 • 1 关注
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 180 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖 • 1 关注
  • 招聘

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

    189 引用 • 1057 回帖
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 690 关注
  • Ubuntu

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

    127 引用 • 169 回帖 • 1 关注
  • 阿里巴巴

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

    43 引用 • 221 回帖 • 71 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 4 关注