https://github.com/friday2su/cryptoflow
A powerful and easy-to-use encryption and encoding library with zero dependencies
https://github.com/friday2su/cryptoflow
aes base64 crypto encoding encoding-decoding encryption hash rsa zero-dependencies
Last synced: 3 months ago
JSON representation
A powerful and easy-to-use encryption and encoding library with zero dependencies
- Host: GitHub
- URL: https://github.com/friday2su/cryptoflow
- Owner: friday2su
- License: other
- Created: 2024-11-20T08:07:58.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-11-20T08:11:41.000Z (6 months ago)
- Last Synced: 2025-01-23T01:41:58.241Z (4 months ago)
- Topics: aes, base64, crypto, encoding, encoding-decoding, encryption, hash, rsa, zero-dependencies
- Language: TypeScript
- Homepage:
- Size: 9.31 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CryptoFlow
A powerful, zero-dependency cryptographic library for Node.js, providing military-grade encryption and comprehensive cryptographic operations with TypeScript support.
[](https://badge.fury.io/js/cryptoflow)
[](https://opensource.org/licenses/MIT)## 🌟 Features
- ✨ Zero external dependencies
- 🔒 Military-grade encryption (AES-256-GCM)
- 🔑 RSA public-key cryptography
- 📝 Digital signatures
- 🤝 Secure key exchange (ECDH/DH)
- 🔐 Password generation & key derivation
- #️⃣ Multiple hashing algorithms
- 📦 Full TypeScript support## 📦 Installation
```bash
npm install cryptoflow
```## 🚀 Quick Start
```typescript
import { CryptoFlow } from 'cryptoflow';// Symmetric Encryption
const key = CryptoFlow.generateKey();
const encrypted = CryptoFlow.encrypt("sensitive data", key);
const decrypted = CryptoFlow.decrypt(encrypted, key);// Generate Strong Password
const password = CryptoFlow.generatePassword(16, {
numbers: true,
symbols: true,
uppercase: true,
lowercase: true
});
```## 📚 API Reference
### Symmetric Encryption
```typescript
// Generate encryption key
const key = CryptoFlow.generateKey();// Encrypt data
const encrypted = CryptoFlow.encrypt("sensitive data", key);// Decrypt data
const decrypted = CryptoFlow.decrypt(encrypted, key);
```### RSA Encryption
```typescript
// Generate RSA key pair
const keyPair = CryptoFlow.generateRSAKeyPair();// Encrypt with public key
const encrypted = CryptoFlow.rsaEncrypt("secret message", keyPair.publicKey);// Decrypt with private key
const decrypted = CryptoFlow.rsaDecrypt(encrypted, keyPair.privateKey);
```### Digital Signatures
```typescript
// Sign data
const signature = CryptoFlow.digitalSign(data, privateKey);// Verify signature
const isValid = CryptoFlow.verifySignature(data, signature, publicKey);
```### Key Exchange
```typescript
// ECDH Key Exchange
const alice = CryptoFlow.createECDHKeyExchange();
const bob = CryptoFlow.createECDHKeyExchange();// Compute shared secret
const aliceShared = alice.computeSecret(bob.publicKey);
const bobShared = bob.computeSecret(alice.publicKey);
// aliceShared equals bobShared
```### Password Management
```typescript
// Generate secure password
const password = CryptoFlow.generatePassword(16, {
numbers: true,
symbols: true,
uppercase: true,
lowercase: true
});// Derive key from password
const derivedKey = await CryptoFlow.deriveKey("user-password");
```### Hashing
```typescript
// Single hash
const hash = CryptoFlow.hash("data");// Multiple hash algorithms
const multiHash = CryptoFlow.multiHash("data", ["sha256", "sha512"]);
```## 🔒 Security Features
- Uses cryptographically secure random generation
- Implements constant-time comparison to prevent timing attacks
- Follows cryptographic best practices
- Proper error handling for security-related issues## 🎯 Use Cases
1. **Secure Data Storage**
- Encrypt sensitive data before storing in databases
- Protect configuration files
- Secure file storage systems2. **User Authentication**
- Password hashing
- Token generation
- Session management3. **Secure Communication**
- End-to-end encryption
- Secure message exchange
- API authentication4. **Digital Signatures**
- Document signing
- Transaction verification
- Software updates## ⚙️ TypeScript Support
CryptoFlow is written in TypeScript and includes comprehensive type definitions:
```typescript
interface PasswordOptions {
numbers?: boolean;
symbols?: boolean;
uppercase?: boolean;
lowercase?: boolean;
}interface RSAKeyPair {
publicKey: string;
privateKey: string;
}interface KeyDerivationResult {
key: Buffer;
salt: Buffer;
}
```## 🛡️ Best Practices
1. **Key Management**
- Securely store encryption keys
- Use key derivation for password-based keys
- Rotate keys periodically2. **Error Handling**
```typescript
try {
const encrypted = CryptoFlow.encrypt(data, key);
} catch (error) {
if (error instanceof CryptoFlowException) {
console.error('Encryption failed:', error.message);
}
}
```3. **Secure Configuration**
- Use appropriate key sizes
- Choose strong algorithms
- Implement proper key storage## 📋 Requirements
- Node.js 14.0.0 or higher
- TypeScript 4.0.0 or higher (for TypeScript users)## 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## 📝 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.