Security Helper menyediakan berbagai method untuk keamanan aplikasi, termasuk hashing password, enkripsi data, dan generasi token.
use Ay4t\Helper\HP;
$security = HP::Security();Hash password dengan aman menggunakan Argon2id.
$password = "mySecurePassword123";
$hash = HP::Security($password)->hashPassword();
// Dengan opsi kustom
$hash = HP::Security($password)->hashPassword([
'memory_cost' => 65536,
'time_cost' => 4,
'threads' => 3
]);Verifikasi password dengan hash.
$password = "mySecurePassword123";
$isValid = HP::Security($password)->verifyPassword($hash);Generate token acak yang aman.
// Token URL-safe
$token = HP::Security()->generateToken();
// Token hex
$token = HP::Security()->generateToken(32, false);Generate API key yang aman.
// API key tanpa prefix
$apiKey = HP::Security()->generateApiKey();
// API key dengan prefix
$apiKey = HP::Security()->generateApiKey('user');
// Result: "user_a1b2c3d4..."Enkripsi data menggunakan OpenSSL.
$data = "Sensitive data";
$key = "your-secret-key";
$encrypted = HP::Security($data)->encrypt($key);Dekripsi data yang terenkripsi.
$decrypted = HP::Security($encrypted)->decrypt($key);Manajemen token CSRF.
// Generate token
$token = HP::Security()->generateCsrfToken();
// Verifikasi token
$isValid = HP::Security()->verifyCsrfToken($_POST['csrf_token']);Generate password acak yang aman.
// Password standar
$password = HP::Security()->generatePassword();
// Password dengan karakter khusus tambahan
$password = HP::Security()->generatePassword(16, true, true);class Auth {
public function register($username, $password) {
// Hash password
$hash = HP::Security($password)->hashPassword();
// Generate API key
$apiKey = HP::Security()->generateApiKey('user');
// Simpan ke database...
}
public function login($username, $password) {
// Ambil hash dari database...
$hash = '...';
// Verifikasi password
return HP::Security($password)->verifyPassword($hash);
}
}// Enkripsi data
$sensitiveData = [
'cc_number' => '4111111111111111',
'exp_date' => '12/25'
];
$key = getenv('ENCRYPTION_KEY');
$encrypted = HP::Security(json_encode($sensitiveData))->encrypt($key);
// Dekripsi data
$decrypted = HP::Security($encrypted)->decrypt($key);
$data = json_decode($decrypted, true);- Selalu gunakan
hashPassword()untuk menyimpan password - Gunakan
generateToken()untuk session tokens - Implementasikan CSRF protection di semua form
- Simpan encryption keys di environment variables
- Gunakan
generatePassword()untuk temporary passwords
- Default menggunakan Argon2id untuk hashing password
- Enkripsi menggunakan AES-256-CBC secara default
- CSRF tokens disimpan dalam session
- Semua method menggunakan secure random number generator
- Perhatikan keamanan dalam menyimpan encryption keys