A secure, client-side password management and generation tool built with Next.js, TypeScript, and React.
-
Password Generator: Create strong, customizable passwords
- Random passwords with configurable complexity (uppercase, lowercase, numbers, symbols)
- Memorable passwords using word combinations
- PIN number generation
- Visual strength indicator with entropy calculation
- Password reveal animation
-
Password Manager: Securely store and manage your credentials
- Client-side AES-256 encryption
- No server-side storage; all data remains on your device
- Search functionality with accent-insensitive matching
- Copy passwords to clipboard with one click
- Easy editing and deletion of stored passwords
-
Security Features:
- Device fingerprinting for enhanced encryption
- PBKDF2 key derivation with 10,000 iterations
- Client-side encryption using CryptoJS
- Password strength estimation based on entropy
- No data transmission; everything stays on your device
-
User Experience:
- Responsive design for desktop and mobile
- Dark/light theme support
- Smooth animations with Framer Motion
- Mobile keyboard detection for better form usability
- Internationalization support
- Framework: Next.js 14 with App Router
- Language: TypeScript
- Styling: Tailwind CSS with SCSS modules
- UI Components: Custom components with shadcn/ui foundation
- Form Handling: React Hook Form with Yup validation
- Animations: Framer Motion
- Internationalization: next-intl
- Encryption: CryptoJS
BKPassword takes a comprehensive approach to security:
- Strong Encryption: All passwords are encrypted using AES-256 before storing in localStorage
- Secure Key Derivation: The encryption key is derived using PBKDF2 with 10,000 iterations
- Device Fingerprinting: Uses a combination of hardware and browser characteristics to create a unique device fingerprint
- Zero Data Transmission: No data is ever sent to any server - everything stays on your device
- No Backdoors: Your passwords remain accessible only on the device where they were created
- Open Source: Security through transparency - the code is open for anyone to audit
- Node.js 20.x or higher
- npm or yarn
- Clone the repository:
git clone https://github.com/batuhankendirli/bkpassword.git
cd bkpassword- Install dependencies:
npm install
# or
yarn- Create a .env file in the root directory:
NEXT_PUBLIC_MASTER_KEY=your_random_secret_here
- Start the development server:
npm run dev
# or
yarn dev- Open http://localhost:3000 in your browser.
npm run build
# or
yarn buildThen start the production server:
npm run start
# or
yarn startBKPassword supports internationalization. To add a new language:
- Create a new JSON file in the locales directory with the language code (e.g.,
fr.json) - Copy the structure from the English (
en.json) file and translate the contents - Add the language code to the
localesarray in request.ts
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Batuhan Kendirli - GitHub - batuhankndrl@gmail.com
- Next.js team for the amazing framework
- shadcn/ui for the beautiful UI components
- The open-source community for all the amazing tools
🔒 BKPassword - Keep your passwords secure, accessible, and strong. Always client-side, always private.