最近写electron单机版遇到对文件加密的业务,踩了一些坑,记录一下。

  1. node fs.readFileSync 读取大文件会存在数据读不全的问题,最好使用fs.readFile异步读取方法,或者使用流的读取方式fs.createReadStream
    fs.readFileSync读取丢失数据可以看这
  2. 关于文件内容加解密,可以理解为对二进制数据进行加解密。
    比如一个字符串 ‘ABCDEFGH’,转成二进制数据也就是 65 66 67 68 69 70 71 72。65也就是大写A对应的ascii值(小写a是65+32=97),如果字符串中含有中文,根据选择的编码格式,长度会有所不同,例如utf-8,一个汉字就是三个字节,字符串’ABC张三’ 会有3+2*3=9个字节。加密就是通过某种算法,把这个二进制数据改成另一个二进制数据。
    Demo:我用了AES-128-cbc算法。加密后得到下图 第三行 53 84开头的数据,解密则是将该数据再转为原来的 65 - 66 ... - 72。至于8字节为什么转16字节,则是和算法有关。
  3. 关于加密,可以参考这位大佬的文章,讲的很详细。数据加密 ---- 总篇

node.js文件加密相关推荐

  1. 运行第一个node.js文件

    安装node.js 链接:https://nodejs.org/en/ 选择downloads 再选择对应的版本, Windows Installer (.msi):表示需要安装后才能运行node.j ...

  2. Node.js文件操作二

    前面的博客 Node.js文件操作一中主要是对文件的读写操作,其实还有文件这块还有一些其他操作. 一.验证文件path是否正确(系统是如下定义的) fs.exists = function(path, ...

  3. node.js文件的压缩解压

    node.js文件的压缩解压 流式读写文件 知识预知 例子 压缩解压文件 知识预知 压缩文件 解压文件 流式读写文件 第一步先要弄清楚为什么需要压缩和解压文件,这是因为文件太大了,我们需要将文件进行压 ...

  4. [Node]node.js 文件操作

    既然到了后台,只要你有权限就可以为所欲为了! 创建文件夹 //fs.js var fs = require('fs'); fs.mkdirSync('a', 0755); fs.mkdirSync(' ...

  5. Node.js文件的同步异步事件循环

    刚接触Node.js关于同步异步,事件循环的笔记: 1,文件同异步 var fs = require('fs'); fs.readFile('file.txt', 'utf-8', function( ...

  6. node.js 文件重命名||文件复制||删除||追加 增删改查

    文件重命名 //文件处理 const fs = require("fs") //文件路径 const pathToFile = path.join(__dirname, " ...

  7. node.js aes-256-cbc 加密 解密

    需求 使用 node.js 进行AES 加密解密,代码如下 代码 // Nodejs encryption with CTR const crypto = require('crypto'); con ...

  8. node.js文件操作

    介绍:fs模块是文件操作的封装,它提供了文件的读取,写入,更名,删除,遍历目录,链接POSIX文件系统操作.与其他模块不同的是,fs模块中所有的操作都提供了异步和同步两个版本,例如读取文件内容函数异步 ...

  9. (13)Node.js 文件流 缓冲 VS 流

    一.文件操作 – 缓冲方式 通过把源文件放入内存缓冲中,最后到目标文件.  首先先放入内存缓冲中  当内存缓冲满为止,才向目标文件进行传输  二.文件操作 - 流方式 将A作为读取流,然后传输到B写入 ...

  10. ios浏览器无法播放视频-node.js文件传输问题

    错误描述 windows.android浏览器都能播放视频,ios系统浏览器和MacOS的Safari浏览器不能播放和加载视频 原因 ios是分段请求视频的,ios之所以分多次请求也有其原因.比方说先 ...

最新文章

  1. WCF 第十三章 可编程站点 使用WebGet和WebInvoke
  2. 通过pycharm启动django
  3. swift 导出测试包(Save for Ad Hoc Deployment)卡在compile bitcode处问题
  4. 如何用ARP欺骗来嗅探主机流量
  5. 查看修改Linux隐藏文件的四种简便方法
  6. 前端学习(1029):jquery其他方法
  7. linux pgpgin pgpgout pswpin pswpout 说明
  8. 解题:ZJOI 2006 书架
  9. mojolicious mysql_CentOS 下玩 Mojolicious 第一课
  10. 第三季-第19课-消息队列编程
  11. 大数据可视化的价值意义
  12. python写诗代码_python实现诗歌游戏(类继承)
  13. JavaScript判断鼠标中键滑轮的上下滚动
  14. STL(五)之智能指针剖析
  15. html播放ppt插件,lightslider-支持移动触摸的轻量级jQuery幻灯片插件
  16. Distributed Database System —— Multi-raft协议介绍
  17. 【20220114】【信号处理】什么是基线漂移/趋势项?如何消除?
  18. Matlab如何调整坐标轴刻度
  19. MySQL日期类型及默认设置
  20. 互联网体育健康猫触雷之败:留给了创业者什么警示?

热门文章

  1. 20元制作笔记本电脑防偷窥神器
  2. SCI 期刊、SCIE 期刊和 ESCI 期刊的比较
  3. c语言输入星期的首字母,关于简单C语言的练习输入一个正整数表示一个星期中的某一天,若此数字在[1,7]内,则输出对应英文星期名,否则表示输入我做...
  4. js实现文字跑马灯效果
  5. RxJava 学习笔记(七) --- Filtering 过滤操作
  6. HDU 5058 So easy (set容器大法好)
  7. 李帅燕山大学计算机,燕山大学第二十三届学生会复试结果
  8. 采用numpy快速将两个矩阵或数组合并成一个数组和行列转置
  9. linux公社_如何在Linux中安装和使用dig和nslookup命令
  10. 255%可用已接通电源_直流稳压电源五款电路图详解