当前位置: 首页 > ai >正文

Vue加密文章密码 VuePress

前言

事情的起因是,我需要一个存放未分类整理知识点,以及收藏转载文章的私人知识库,和 iMaeGoo’s Blog 区别开来。

我尝试过简书、语雀、Evernote、OneNote、有道云笔记,对它们的 markdown 支持、导出能力、搜索能力、容量、安全性都有体会。

最后我决定建一个私人 Git 仓库,用 markdown 来记笔记。然后通过 CI/CD 自动构建到一个叫 iMaeGoo’s Diary 的 VuePress 网站。写笔记 Notepad + Git 就能搞定,还能自由选择多种多样的 markdown 编辑器,手机端也可以通过在线 IDE 更新内容,VuePress 的搜索非常好用,安全性也完全在自己的掌控范围之内。

反正是知识库嘛,我配置了完全公开,方便自己随时随地查看,但由于是未经整理的知识库,也不建议访客去看啦。

问题就来了,有些笔记包含了敏感信息,怎么在公开的知识库中保护这类信息?

在寻找 VuePress 加密时,我发现了 vuepress-plugin-encrypt 这个好用的插件,使用了 aes-128-ctr 来加密内容,你可以直接查看它的英文官方文档。

开始使用

  1. 在 VuePress 的项目中安装这个插件

    command

    1
    
    yarn add -D @oak-tree-house/vuepress-plugin-encrypt
    
  2. 修改配置文件启用插件

    .vuepress/config.js

    1
    2
    3
    4
    5
    
    module.exports = {plugins: [['@oak-tree-house/encrypt']]
    }
    
  3. 修改 package.json 增加加解密的命令

    package.json

    1
    2
    3
    4
    5
    6
    
    {"scripts": {"decrypt": "encrypt decrypt --source-dir <YOUR_SOURCE_DIR> --key-file keys.json --temp .temp-encrypt","encrypt": "encrypt encrypt --source-dir <YOUR_SOURCE_DIR> --key-file keys.json --temp .temp-encrypt"}
    }
    
    * 此处基于官方 doc 有改动,命令参数 encrypt 和 decrypt 需要放在最前,否则会遇到错误 error: unknown option '--source-dir'
  4. 把临时目录添加到 .gitignore 列表

    .gitignore

    1
    2
    
    /keys.json
    /.temp-encrypt
    
    * 如果你的是安全的私有 Git 仓库,想一起提交密码文件,可以不 ignore /keys.json
  5. 新建密码文件 keys.json

    keys.json

    1
    2
    3
    4
    5
    6
    
    {"user": "imaegoo","keys": {"key": "mypassword"}
    }
    
  6. 尝试写一段需要加密的内容

    markdown

    1
    2
    3
    4
    
    ## test
    ::: encrypt key=key owners=imaegoo
    my password is helloworld
    :::
    
  7. 运行 yarn encrypt,你将会发现上一步的内容被自动替换成密文

    markdown

    1
    2
    3
    4
    5
    
    ## test
    ::: encrypt encrypted key=key owners=imaegoo
    ZpDkUuyB2+O7/Ga9InossDwIYJVn3I6VbdlNLxiJaU/gCDxnC1kQcgbzC9RqVCZ3ru6fpf3B5wnjKKS
    R1/miaLoxP4WrCnlYTiL0AeAeLPW0bN+3KqBg2n+fTCqubEFfRZnbKUGvsuZai0vRSW4OYmirew**
    :::
    
  8. 大功告成,运行 VuePress 开发模式,测试一下吧!

http://www.xdnf.cn/news/15505.html

相关文章:

  • 数据结构 双向链表(1)
  • 基于Matlab的四旋翼无人机动力学PID控制仿真
  • PyTorch 参数初始化详解:从理论到实践
  • ZYNQ Petalinux系统FLASH固化终极指南:创新多分区与双系统切换实战
  • 如何区分Bug是前端问题还是后端问题?
  • UE5多人MOBA+GAS 24、创建属性UI(一)
  • 插板式系统的“生命线“:EtherCAT分布式供电该如何实现?
  • 第13章 AB实验平台的建设
  • 解锁高效Excel技能:摆脱鼠标,快速编辑单元格
  • 凯伦股份融合复合瓦:新时代可焊接物理防腐金属屋面系统方案
  • Mysql练习
  • Linux命令大全
  • 第五章 管道工程 5.4 管道安全质量控制
  • 设计一款用于捕捉动态产品视频的摄像机器人
  • 元宇宙经济:虚实融合引发经济新变革
  • 前端学习7:CSS过渡与动画--补间动画 (Transition) vs 关键帧动画 (Animation)
  • Linux切换到Jenkins用户解决Jenkins Host key verification failed
  • 工业相机GigE数据接口的优势及应用
  • 以太网供电与自愈网络对音视频系统的益处
  • 重学前端006 --- 响应式网页设计 CSS 弹性盒子
  • ssl相关命令生成证书
  • 阿里云 RabbitMQ 可观测性最佳实践
  • 蓝光三维扫描技术:手机闪光灯模块全尺寸3D检测的高效解决方案
  • 逆功率检测设备防逆流解决方案守护电网安全
  • 智能体架构深度解构:一次用户请求的完整旅程
  • MyBatis 之分页四式传参与聚合、主键操作全解
  • MySQL学习——面试版
  • Navicat操作指南:MySQL数据库配置与Todo应用部署
  • 从零开始的云计算生活——番外3,LVS+KeepAlived+Nginx高可用实现方案
  • 深入理解概率图模型:贝叶斯网络因子分解、d-分离与马尔可夫毯