Tutorial PHP

RUMAH PHP Pengenalan PHP Instal PHP Sintaks PHP Komentar PHP Variabel PHP PHP Gema / Cetak Tipe Data PHP String PHP Nomor PHP PHP Matematika Konstanta PHP Operator PHP PHP Jika...Lain...Elseif Beralih PHP PHP Loop Fungsi PHP Array PHP PHP Superglobal PHP RegEx

Formulir PHP

Penanganan Formulir PHP Validasi Formulir PHP Diperlukan Formulir PHP URL/Email Formulir PHP Formulir PHP Lengkap

PHP Lanjutan

Tanggal dan Waktu PHP PHP Termasuk Penanganan File PHP File PHP Buka/Baca Membuat/Menulis File PHP Unggah File PHP Cookie PHP Sesi PHP Filter PHP Filter PHP Tingkat Lanjut Fungsi Panggilan Balik PHP PHP JSON Pengecualian PHP

PHP OOP

PHP Apa itu OOP Kelas/Objek PHP Konstruktor PHP Penghancur PHP Pengubah Akses PHP Warisan PHP Konstanta PHP Kelas Abstrak PHP Antarmuka PHP Ciri-ciri PHP Metode Statis PHP Properti Statis PHP Ruang Nama PHP PHP Iterable

Database MySQL

Database MySQL Koneksi MySQL MySQL Buat DB MySQL Buat Tabel MySQL Sisipkan Data MySQL Dapatkan ID Terakhir MySQL Sisipkan Beberapa MySQL Disiapkan MySQL Pilih Data MySQL Dimana MySQL Dipesan Oleh MySQL Hapus Data Data Pembaruan MySQL Data Batas MySQL

PHP XML

PHP XML Parser PHP SimpleXML Parser PHP SimpleXML - Dapatkan PHP XML Ekspat PHP XML DOM

PHP - AJAX

Pengenalan AJAX AJAX PHP Basis Data AJAX AJAX XML Pencarian Langsung AJAX Jajak Pendapat AJAX

Contoh PHP

Contoh PHP Kompilator PHP Kuis PHP Latihan PHP Sertifikat PHP

Referensi PHP

Ikhtisar PHP Array PHP Kalender PHP Tanggal PHP Direktori PHP Kesalahan PHP Pengecualian PHP Sistem File PHP Filter PHP PHP FTP PHP JSON Kata Kunci PHP PHP Libxml Surat PHP PHP Matematika PHP Lain-lain PHP MySQLi Jaringan PHP Kontrol Keluaran PHP PHP RegEx PHP SimpleXML Aliran PHP String PHP Penanganan Variabel PHP PHP XML Parser PHP Zip Zona Waktu PHP

PHP crypt() Fungsi


Referensi String PHP

Definisi dan Penggunaan

Fungsi crypt() mengembalikan string hash menggunakan algoritma DES, Blowfish, atau MD5.

Fungsi ini berperilaku berbeda pada sistem operasi yang berbeda. PHP memeriksa algoritma apa yang tersedia dan algoritma apa yang digunakan ketika diinstal.

Parameter garam adalah opsional. Namun, crypt() membuat kata sandi yang lemah tanpa garam. Pastikan untuk menentukan garam yang cukup kuat untuk keamanan yang lebih baik.

Ada beberapa konstanta yang digunakan bersama dengan fungsi crypt(). Nilai konstanta ini ditetapkan oleh PHP saat diinstal.

Konstanta:

  • [CRYPT_STD_DES] - Standar hash berbasis DES dengan dua karakter garam dari alfabet "./0-9A-Za-z". Menggunakan karakter yang tidak valid dalam garam akan menyebabkan fungsi ini gagal.
  • [CRYPT_EXT_DES] - Hash berbasis DES yang diperluas dengan garam sembilan karakter yang terdiri dari garis bawah diikuti oleh 4 byte jumlah iterasi dan 4 byte garam. Ini dikodekan sebagai karakter yang dapat dicetak, 6 bit per karakter, karakter paling tidak signifikan terlebih dahulu. Nilai 0 hingga 63 dikodekan sebagai "./0-9A-Za-z". Menggunakan karakter yang tidak valid dalam garam akan menyebabkan fungsi gagal.
  • [CRYPT_MD5] - MD5 hashing dengan garam 12 karakter dimulai dengan $1$
  • [CRYPT_BLOWFISH] - Hashing Blowfish dengan garam dimulai dengan $2a$, $2x$, atau $2y$, parameter biaya dua digit "$", dan 22 karakter dari alfabet "./0-9A-Za-z" . Menggunakan karakter di luar alfabet akan menyebabkan fungsi ini mengembalikan string panjang nol. Parameter "$" adalah logaritma basis-2 dari jumlah iterasi untuk algoritme hashing Blowfish-bashed yang mendasarinya dan harus dalam kisaran 04-31. Nilai di luar rentang ini akan menyebabkan fungsi gagal.
  • [CRYPT_SHA_256] - SHA-256 hash dengan garam 16 karakter dimulai dengan $5$. Jika string garam dimulai dengan "rounds=<N>$", nilai numerik N digunakan untuk menunjukkan berapa kali loop hashing harus dijalankan, seperti parameter biaya pada Blowfish. Jumlah putaran default adalah 5000, ada minimum 1000 dan maksimum 999.999.999. Setiap pilihan N di luar rentang ini akan dipotong ke batas terdekat.
  • [CRYPT_SHA_512] - hash SHA-512 dengan garam 16 karakter dimulai dengan $6. Jika string garam dimulai dengan "rounds=<N>$", nilai numerik N digunakan untuk menunjukkan berapa kali loop hashing harus dijalankan, seperti parameter biaya pada Blowfish. Jumlah putaran default adalah 5000, ada minimum 1000 dan maksimum 999.999.999. Setiap pilihan N di luar rentang ini akan dipotong ke batas terdekat.

Pada sistem di mana fungsi ini mendukung beberapa algoritme, konstanta di atas disetel ke "1" jika didukung dan "0" jika tidak.

Catatan: Tidak ada fungsi dekripsi. Fungsi crypt() menggunakan algoritma satu arah.


Sintaksis

crypt(str,salt)

Nilai Parameter

Parameter Description
str Required. Specifies the string to be hashed
salt Optional. A salt string to base the hashing on


Detail Teknis

Nilai Kembali: Mengembalikan string yang disandikan atau string yang lebih pendek dari 13 karakter dan dijamin berbeda dari garam saat gagal
Versi PHP: 4+
Catatan perubahan: PHP 5.6.0 - Menampilkan peringatan keamanan E_NOTICE jika garam dihilangkan.
PHP 5.3.7 - Menambahkan mode Blowfish $2x$ dan $2y$.
PHP 5.3.2 - Menambahkan SHA-256 dan SHA-512. Memperbaiki perilaku Blowfish pada putaran yang tidak valid mengembalikan string "kegagalan" ("*0" atau "*1"), alih-alih kembali ke DES.
PHP 5.3.0 - PHP sekarang berisi implementasinya sendiri untuk MD5 crypt, Standard DES, Extended DES dan algoritma Blowfish dan akan menggunakannya jika sistem kekurangan dukungan untuk satu atau lebih algoritma.

Lebih Banyak Contoh

Contoh

Dalam contoh ini kita akan menguji algoritma yang berbeda:

<?php
// 2 character salt
if (CRYPT_STD_DES == 1)
{
echo "Standard DES: ".crypt('something','st')."\n<br>";
}
else
{
echo "Standard DES not supported.\n<br>";
}

// 4 character salt
if (CRYPT_EXT_DES == 1)
{
echo "Extended DES: ".crypt('something','_S4..some')."\n<br>";
}
else
{
echo "Extended DES not supported.\n<br>";
}

// 12 character salt starting with $1$
if (CRYPT_MD5 == 1)
{
echo "MD5: ".crypt('something','$1$somethin$')."\n<br>";
}
else
{
echo "MD5 not supported.\n<br>";
}

// Salt starting with $2a$. The two digit cost parameter: 09. 22 characters
if (CRYPT_BLOWFISH == 1)
{
echo "Blowfish: ".crypt('something','$2a$09$anexamplestringforsalt$')."\n<br>";
}
else
{
echo "Blowfish DES not supported.\n<br>";
}

// 16 character salt starting with $5$. The default number of rounds is 5000.
if (CRYPT_SHA256 == 1)
{
echo "SHA-256: ".crypt('something','$5$rounds=5000$anexamplestringforsalt$')."\n<br>"; }
else
{
echo "SHA-256 not supported.\n<br>";
}

// 16 character salt starting with $6$. The default number of rounds is 5000.
if (CRYPT_SHA512 == 1)
{
echo "SHA-512: ".crypt('something','$6$rounds=5000$anexamplestringforsalt$');
}
else
{
echo "SHA-512 not supported.";
}
?>

Output dari kode di atas bisa (tergantung pada sistem operasi):

Standard DES: stqAdD7zlbByI
Extended DES: _S4..someQXidlBpTUu6
MD5: $1$somethin$4NZKrUlY6r7K7.rdEOZ0w.
Blowfish: $2a$09$anexamplestringforsaleLouKejcjRlExmf1671qw3Khl49R3dfu
SHA-256: $5$rounds=5000$anexamplestringf$KIrctqsxo2wrPg5Ag/hs4jTi4PmoNKQUGWFXlVy9vu9
SHA-512: $6$rounds=5000$anexamplestringf$Oo0skOAdUFXkQxJpwzO05wgRHG0dhuaPBaOU/
oNbGpCEKlf/7oVM5wn6AN0w2vwUgA0O24oLzGQpp1XKI6LLQ0.


Referensi String PHP