UNPKG

k9crypt

Version:

A special encryption algorithm created for K9Crypt.

136 lines (100 loc) 3.19 kB
![](https://www.upload.ee/image/18092921/k9crypt-npm-banner.png) # K9Crypt Algorithm This is a special encryption algorithm created for K9Crypt. ## Updates **v1.1.8** - Added `encryptFile()` and `decryptFile()` methods for large file encryption with progress tracking - Added `encryptMany()` and `decryptMany()` methods for batch operations with sequential and parallel processing - Introduced compression level control (0-9) for flexible speed/size balance - All method names simplified for better user experience - Parallel processing support for high-volume data operations ## Installation ```bash bun add k9crypt # npm install k9crypt # pnpm add k9crypt # yarn add k9crypt ``` ## Usage ### Basic Usage ```javascript const k9crypt = require('k9crypt'); async function test() { const secretKey = 'VeryLongSecretKey!@#1234567890'; const encryptor = new k9crypt(secretKey); // Or you can use it without providing a secretKey value. A key will be generated by the system. // const encryptor = new k9crypt(); const plaintext = 'Hello, World!'; try { const encrypted = await encryptor.encrypt(plaintext); console.log('Encrypted data:', encrypted); const decrypted = await encryptor.decrypt(encrypted); console.log('Decrypted data:', decrypted); } catch (error) { console.error('Encryption error:', error); } } test(); ``` ### Advanced Features #### Compression Level Control ```javascript const encryptor = new k9crypt(secretKey, { compressionLevel: 5 }); const encrypted = await encryptor.encrypt(plaintext, { compressionLevel: 7 }); ``` #### File Encryption with Progress Tracking ```javascript async function encryptBigFile() { const largeData = 'Very large data...'; const encrypted = await encryptor.encryptFile(largeData, { compressionLevel: 6, onProgress: (progress) => { console.log(`Processed: ${progress.processedBytes} bytes`); } }); const decrypted = await encryptor.decryptFile(encrypted, { onProgress: (progress) => { console.log(`Decrypted: ${progress.processedBytes} bytes`); } }); return decrypted; } ``` #### Multiple Data Encryption ```javascript async function encryptMultipleData() { const dataArray = ['data1', 'data2', 'data3', 'data4']; const encrypted = await encryptor.encryptMany(dataArray, { compressionLevel: 5, onProgress: (progress) => { console.log(`Progress: ${progress.percentage}% (${progress.current}/${progress.total})`); } }); const decrypted = await encryptor.decryptMany(encrypted, { skipInvalid: true, onProgress: (progress) => { console.log(`Progress: ${progress.percentage}%`); } }); return decrypted; } ``` #### Parallel Processing ```javascript async function encryptManyDataFast() { const dataArray = Array(100).fill('sample data'); const encrypted = await encryptor.encryptMany(dataArray, { parallel: true, batchSize: 20, compressionLevel: 4 }); const decrypted = await encryptor.decryptMany(encrypted, { parallel: true, batchSize: 20, skipInvalid: false }); return decrypted; } ``` ## License This project is licensed under the MIT license.