Library Auth dengan Double Hashing Argon2id + HMAC-SHA512
Project description
harisad_auth 🛡️
harisad_auth adalah librari Python untuk keamanan autentikasi tingkat tinggi. Librari ini menggabungkan teknik Double Layer Hashing (HMAC-SHA512 + Argon2id) untuk menghasilkan hash yang sangat panjang dan tahan terhadap serangan brute-force modern. Selain itu, librari ini menyediakan manajemen sesi yang ringan mirip dengan flask-login.
✨ Fitur Utama
- Ultra-Secure Hashing: Menggunakan SHA512 sebagai pre-processor dan Argon2id sebagai main hasher.
- Custom Output Length: Menghasilkan hash sepanjang 128-255 karakter.
- Session Management: Dilengkapi dengan
LoginManagerdanUserMixin. - Pepper Support: Menambahkan lapisan keamanan rahasia di sisi server.
- JSON Ready: Didesain agar mudah diintegrasikan dengan penyimpanan file JSON atau database SQL.
🚀 Cara Instalasi
Pastikan Anda telah menginstal dependensi yang diperlukan:
pip install argon2-cffi
Lalu instal librari ini (jika sudah di PyPI):
pip install harisad_auth
🛠️ Panduan Penggunaan
1. Enkripsi Password (Double Hashing)
Librari ini menggunakan HMAC-SHA512 yang kemudian dibungkus oleh Argon2id.
from harisad_auth import SecureHasher
# 1. Inisialisasi dengan Pepper rahasia (Simpan di .env, jangan di DB)
hasher = SecureHasher(pepper="KunciRahasiaNegara123", hash_len=64)
# 2. Membuat Hash
password_user = "rahasiaku123"
hashed_password = hasher.hash_password(password_user)
print(f"Hasil Hash: {hashed_password}")
print(f"Panjang Hash: {len(hashed_password)} karakter") # ~180-220 karakter
# 3. Verifikasi Password
is_valid = hasher.verify_password(hashed_password, "rahasiaku123")
print(f"Status Cocok: {is_valid}") # True
2. Manajemen Login & Sesi
Gunakan LoginManager untuk melacak status pengguna yang sedang aktif di aplikasi Anda.
from harisad_auth import LoginManager, UserMixin
# 1. Buat Class User Anda sendiri
class User(UserMixin):
def __init__(self, id, username):
super().__init__()
self.id = id
self.username = username
# 2. Setup Manager
auth_manager = LoginManager()
# 3. Proses Login
user_data = User(id=101, username="harisad")
auth_manager.login_user(user_data)
# 4. Cek Status User saat ini
print(f"User Aktif: {auth_manager.current_user.username}")
print(f"Status Autentikasi: {auth_manager.current_user.is_authenticated}")
# 5. Logout
auth_manager.logout_user()
print(f"Apakah sudah logout? {not auth_manager.current_user.is_authenticated}")
3. Integrasi dengan Penyimpanan JSON
Contoh penggunaan praktis jika Anda menggunakan file JSON sebagai database:
import json
from harisad_auth import SecureHasher, LoginManager
hasher = SecureHasher(pepper="MY_SECRET")
manager = LoginManager()
# Simulasi database JSON
db_data = '{"username": "harisad", "password_hash": "$argon2id$v=19$m=65536..."}'
user_record = json.loads(db_data)
# Logika Verifikasi
password_input = "password_anda"
if hasher.verify_password(user_record['password_hash'], password_input):
# Buat objek user dan masukkan ke session manager
print("Akses Diterima!")
else:
print("Akses Ditolak!")
🔐 Keamanan Kriptografi
Secara teknis, librari ini memproses data dengan alur:
- HMAC-SHA512: Mengamankan password asli dengan Pepper rahasia.
- Argon2id: Melakukan hashing memori-keras pada hasil SHA512 untuk mencegah peretasan menggunakan GPU.
📜 Lisensi
Proyek ini dilindungi di bawah lisensi MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file harisad_auth-0.1.0.tar.gz.
File metadata
- Download URL: harisad_auth-0.1.0.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e14034b301fcb1f95b83797d5e2cb01e429bd859d899e75864103587a18338b0
|
|
| MD5 |
2986d0a81d970553f4a779613cb95d1f
|
|
| BLAKE2b-256 |
499a3a307af5a9548c18607840b282db0781417ceb9a7ea273b702ff0e9f12fa
|
File details
Details for the file harisad_auth-0.1.0-py3-none-any.whl.
File metadata
- Download URL: harisad_auth-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
986f13b225f0a13fc090e16c919161a568bdaeb214dd4f712fe90a2ceeec730d
|
|
| MD5 |
6867e806f8651cfaf20d781231de4824
|
|
| BLAKE2b-256 |
74c77f1fbd10dca9d45da868a4fc689ae6493e9a3edb22320b40c76d3fb4608c
|