@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.

Readme

Keywords

Package Sidebar

Install

npm i @guanghechen/helper-cipher-file

Weekly Downloads

1

Version

6.0.0-alpha.17

License

MIT

Unpacked Size

102 kB

Total Files

8

Last publish

Collaborators

  • lemonclown