@guanghechen/helper-cipher-file
TypeScript icon, indicating that this package has built-in type declarations

6.0.0-alpha.17 • Public • Published

@guanghechen/helper-cipher-file


Utility functions for encrypt / decrypt files.

Install

  • npm

    npm install --save @guanghechen/helper-cipher-file
  • yarn

    yarn add @guanghechen/helper-cipher-file

Usage

  • FileCipherPathResolver

    import path from 'node:path'
    import url from 'node:url'
    import { FileCipherPathResolver } from '@guanghechen/helper-cipher-file'
    
    const __dirname = path.dirname(url.fileURLToPath(import.meta.url))
    const sourceRootDir = path.join(__dirname, 'src')
    const encryptedRootDir = path.join(__dirname, 'lib')
    const pathResolver = new FileCipherPathResolver({ sourceRootDir, encryptedRootDir })
    
    // calcAbsoluteSourceFilepath
    pathResolver.calcAbsoluteSourceFilepath('waw.txt') // => path.join(sourceRootDir, 'waw.txt')
    
    // calcAbsoluteEncryptedFilepath
    pathResolver.calcAbsoluteEncryptedFilepath('waw.txt') // => path.join(encryptedRootDir, 'waw.txt')
    
    // calcRelativeSourceFilepath
    pathResolver.calcRelativeSourceFilepath(path.join(sourceRootDir, 'waw.txt')) // => 'waw.txt'
    
    // calcRelativeEncryptedFilepath
    pathResolver.calcRelativeEncryptedFilepath(path.join(encryptedRootDir, 'waw.txt')) // => 'waw.txt'
  • FileCipherPathResolver

  • FileCipher

    import { ChalkLogger } from '@guanghechen/chalk-logger'
    import { AesCipherFactory } from '@guanghechen/helper-cipher'
    import { FileCipherFactory } from '@guanghechen/helper-cipher-file'
    
    const logger = new ChalkLogger({ flights: { colorful: false, date: false } })
    const cipherFactory = new AesCipherFactory()
    const fileCipherFactory = new FileCipherFactory({ cipherFactory, logger })
    const fileCipher = fileCipherFactory.fileCipher()
    
    // Encrypt multiple files and concatenate the encrypted contents.
    const encryptedContent: Buffer = await fileCipher.encryptFromFiles([sourceFilepath, sourceFilepath2, ...])
    
    // Encrypt multiple files and concatenate the decrypted contents.
    const decryptedContent: Buffer = await fileCipher.decryptFromFiles([encryptedFilepath1, encryptedFilepath2, ...])
    
    // Encrypt multiple files and write the concatenated encrypted contents into another file.
    await fileCipher.encryptFile([sourceFilepath1, sourceFilepath2, ...], outputFilepath)
    
    // Decrypt multiple files and write the concatenated decrypted contents into another file.
    await fileCipher.decryptFiles([encryptedFilepath1, encryptedFilepath2, ...], outputFilepath)
    
    // Decrypt file and write the encrypted content into another file.
    await fileCipher.encryptFiles([sourceFilepath1, sourceFilepath2, ...], outputFilepath)
    
    // Decrypt file and write the encrypted content into another file.
    await fileCipher.decryptFiles([encryptedFilepath1, encryptedFilepath2, ...], outputFilepath)

Overview

Name Description
FileCipher Encrypt / Decrypt files.
FileCipherCatalog Encrypt / Decrypt files with catalog./home/lemon/ws/guanghechen/sora/packages/mac/src
FileCipherPathResolver Resolve the relative / absolute filepaths.
calcFileCipherCatalogItem
diffFileCipherItems
areSameCatalogItem
normalizeSourceFilepath
calcMacFromFile Calc mac (Message Authentication Code) from fle.
calcFingerprintFromMac Calc fingerprint from mac.
calcFingerprintFromString Calc fingerprint from literal string.
calcFingerprintFromFile Calc fingerprint from file.

/@guanghechen/helper-cipher-file/

    Package Sidebar

    Install

    npm i @guanghechen/helper-cipher-file

    Weekly Downloads

    71

    Version

    6.0.0-alpha.17

    License

    MIT

    Unpacked Size

    102 kB

    Total Files

    8

    Last publish

    Collaborators

    • lemonclown