crypt() function PHP

crypt() function berguna untuk meng-encrypt string menggunakan DES, Blowfish atau MD5 tergantung dari encryptor yang dimiliki oleh system.

Syntax

string crypt(string $str, string $salt)

Parameter

Parameter Penjelasan
str Parameter ini wajib ada. String yang ingin diproses.
salt Parameter ini pilihan. Salt adalah character yang ditambahkan ke dalam data yang akan di-encrypt sehingga hash yang dihasilkan menjadi lebih rumit. Jika parameter ini tidak diisi maka salt akan ditentukan oleh algoritma yang digunakan oleh system yang bisa menyebabkan hasil yang tidak diharapkan.

Catatan

crypt() function menghasilkan hash dalam bentuk string tergantung dari encryptor yang ada di dalam system yang sedang digunakan (DES, Blowfish atau MD5).

crypt() function bekerja berdasarkan beberapa nilai constant di bawah ini yang ada di dalam system:

  • CRYPT_STD_DES – Meng-encrypt data menggunakan DES normal dengan tambahan 2 character salt dari alphabet "./0-9A-Za-z". Menggunakan invalid character di dalam salt akan menyebabkan crypt() function tidak bekerja.
  • CRYPT_EXT_DES – Meng-encrypt data menggunakan DES lanjutan. Salt yang digunakan adalah 9 character string yang terdiri dari character garis bawah _ diikuti dengan 4 byte hasil perhitungan iterasi dan 4 byte salt.
  • CRYPT_MD5 – Meng-encrypt data menggunakan MD5 dengan tambahan 12 character salt yang dimulai dari "$1$".
  • CRYPT_BLOWFISH – Meng-encrypt data menggunakan Blowfish dengan tambahan salt seperti berikut ini: “$2a$”, “$2x$” atau “$2y$”, 2 angka cost parameter, “$” dan 22 character dari alpahabet “./0-9A-Za-z”. Menggunakan character untuk salt yang berasal dari luar character yang telah disebutkan akan menyebabkan crypt() function menghasilkan string kosong "". 2 angka cost parameter adalah logaritma base-2 dari perhitungan iterasi Blowfish.
  • CRYPT_SHA256 – Meng-encrypt data menggunakan SHA-256 dengan tambahan 16 character salt yang dimulai dengan "$5$".
  • CRYPT_SHA512 – Meng-encrypt data menggunakan SHA-512 dengan tambahan 16 character salt yang dimulai dengan "$6$".

Jika Salah satu constant di atas memiliki nilai 1 maka crypt() function akan bekerja menggunakan constant tersebut. Sebaliknya, jika salah satu constant di atas bernilai 0 maka constant tersebut tidak digunakan.

Menggunakan CRYPT_BLOWFISH akan membuat maksimum character yang dapat dimasukkan ke dalam parameter str adalah 72 character.

Contoh

Berikut ini adalah contoh penggunaan crypt() function:

Code PHP 1:

<?php
if (CRYPT_STD_DES == 1) {
    echo 'DES Normal: ' . crypt('rasmuslerdorf', 'rl') . "\n";
}

if (CRYPT_EXT_DES == 1) {
    echo 'DES lanjutan: ' . crypt('rasmuslerdorf', '_J9..rasm') . "\n";
}

if (CRYPT_MD5 == 1) {
    echo 'MD5: ' . crypt('rasmuslerdorf', '$1$rasmusle$') . "\n";
}

if (CRYPT_BLOWFISH == 1) {
    echo 'Blowfish: ' . crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$') . "\n";
}

if (CRYPT_SHA256 == 1) {
    echo 'SHA-256: ' . crypt('rasmuslerdorf', '$5$rounds=5000$usesomesillystringforsalt$') . "\n";
}

if (CRYPT_SHA512 == 1) {
    echo 'SHA-512: ' . crypt('rasmuslerdorf', '$6$rounds=5000$usesomesillystringforsalt$') . "\n";
}
?>

Hasil running code di atas bila dilihat melalui page source browser akan tampak sebagai berikut ini:

DES Normal: rl.3StKT.4T8M
DES lanjutan: _J9..rasmBYk8r9AiWNc
MD5: $1$rasmusle$rISCgZzpwk3UhDidwXvin0
Blowfish: $2a$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi
SHA-256: $5$rounds=5000$usesomesillystri$KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6
SHA-512: $6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21

Lihat function lainnya:

  • md5() – Meng-encrypt string menggunakan md5.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>