Latest web development tutorials
×

PHP kuliah

PHP kuliah PHP pengantar singkat PHP memasang PHP tatabahasa PHP variabel PHP echo/print PHP Jenis Data PHP konstan PHP tali PHP operator PHP If...Else PHP Switch PHP susunan PHP Sorting array PHP superglobals PHP While sirkulasi PHP For sirkulasi PHP fungsi PHP Variabel sihir PHP Ruang nama PHP Berorientasi Objek

PHP bentuk

PHP bentuk PHP bentuk Authentication PHP bentuk - bidang yang harus diisi PHP bentuk - email verifikasi dan URL PHP contoh bentuk lengkap PHP $_GET variabel PHP $_POST variabel

PHP canggih Tutorial

PHP Array multidimensi PHP tanggal PHP berisi PHP berkas PHP Upload File PHP Cookie PHP Session PHP E-mail PHP keamanan E-mail PHP Error PHP Exception PHP filter PHP filter lanjutan PHP JSON

PHP 7 Fitur baru

PHP 7 Fitur baru

PHP database

PHP MySQL pengantar singkat PHP MySQL koneksi PHP MySQL Membuat database PHP MySQL Buat tabel data PHP MySQL memasukkan data PHP MySQL Menyisipkan beberapa data yang PHP MySQL Laporan disiapkan PHP MySQL membaca data PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX pengantar singkat AJAX PHP AJAX database AJAX XML AJAX pencarian real-time AJAX RSS Reader AJAX suara

PHP Reference manual

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP image Processing PHP RESTful

PHP crypt () function

PHP String Reference PHP String Reference

Definisi dan Penggunaan

crypt () mengembalikan fungsi penggunaan DES, Blowfish, atau algoritma MD5 untuk mengenkripsi string.

Pada sistem operasi yang berbeda, perilaku yang berbeda dari fungsi, beberapa sistem operasi mendukung lebih dari satu jenis algoritma. Saat memasang, PHP akan memeriksa apa yang tersedia dan apa algoritma algoritma.

Algoritma yang tepat bergantung pada format dan panjang argumen garam. garam bisa membuat enkripsi lebih aman dengan meningkatkan jumlah dengan string tertentu dengan metode enkripsi khusus untuk menghasilkan string.

Berikut adalah beberapa konstanta dan crypt () function digunakan dengan. Nilai konstan ditetapkan pada instalasi dengan PHP.

konstan:

  • [CRYPT_SALT_LENGTH] - default panjang enkripsi. Menggunakan enkripsi DES standar, panjang 2
  • [CRYPT_STD_DES] - enkripsi DES berdasarkan standar garam 2-karakter, dari alfabet "./0-9A-Za-z". karakter yang tidak valid dalam garam akan menyebabkan fungsi gagal.
  • [CRYPT_EXT_DES] - Super enkripsi berbasis DES memiliki garam 9 karakter dengan garis bawah di belakang dengan 4 byte count iterasi dan 4 byte komposisi garam. Ini dikodekan sebagai karakter yang dapat dicetak, masing-masing 6, karakter paling signifikan pertama. 0-63 nilai dikodekan sebagai "./0-9A-Za-z". karakter yang tidak valid dalam garam akan menyebabkan fungsi gagal.
  • [CRYPT_MD5] - enkripsi MD5 memiliki garam 12 karakter, dimulai dengan $ 1 $.
  • [CRYPT_BLOWFISH] - enkripsi Blowfish memiliki $ 2a $, $ 2x $ atau $ 2thn $ awal garam, double-digit parameter biaya, "$", serta dari alfabet "./0-9A-Za-z" 22 karakter. Gunakan selain karakter alfabet akan memicu fungsi mengembalikan sebuah string 0 ini. "$" Parameter adalah basis 2 logaritma dari jumlah iterasi algoritma hashing Blowfish harus dalam 04-31 kisaran. Nilai di luar kisaran ini akan menyebabkan fungsi gagal.
  • [CRYPT_SHA_256] - enkripsi SHA-256 memiliki garam 16 karakter, dimulai dengan $ 5 $. Jika string garam "putaran = <N> $" dimulai, nilai digital dari N kali hash yang digunakan untuk menunjukkan loop dijalankan, yang mirip dengan biaya parameter Blowfish. Nomor default siklus adalah 5000, nilai minimum adalah 1000, maksimum adalah 999.999.999. N adalah setiap nilai di luar kisaran ini akan dikonversi ke nilai batas terdekat.
  • [CRYPT_SHA_512] - enkripsi SHA-512 memiliki garam 16 karakter, dimulai dengan $ 6 $. Jika string garam "putaran = <N> $" dimulai, nilai digital dari N kali hash yang digunakan untuk menunjukkan loop dijalankan, yang mirip dengan biaya parameter Blowfish. Nomor default siklus adalah 5000, nilai minimum adalah 1000, maksimum adalah 999.999.999. N adalah setiap nilai di luar kisaran ini akan dikonversi ke nilai batas terdekat.

Pada fungsi ini mendukung sistem multi algoritma, jika didukung di atas konstan diatur ke "1", jika sudah diatur untuk "0."

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


tatabahasa

crypt( str,salt )

参数 描述
str 必需。规定要编码的字符串。
salt 可选。用于增加被编码字符数目的字符串,以使编码更加安全。如果未提供 salt 参数,则每次调用该函数时会随机生成一个。

rincian teknis

Pengembalian: Pengembalian dienkripsi string, jika gagal untuk kembali kurang dari 13 karakter dan jaminan string berbeda dari garam.
Versi PHP: 4+
Update log: Dalam PHP 5.3.7, menambahkan $ 2x $ dan $ 2thn mode $ Blowfish untuk menangani potensi serangan yang tinggi.

Dalam PHP 5.3.2, menambahkan konstan SHA-256 dan SHA-512.

Sejak PHP 5.3.2 dan seterusnya, Blowfish dalam loop tidak valid akan kembali "kegagalan" string ( "* 0" atau "* 1"), daripada kembali ke DES.

Mulai dari PHP 5.3.0, PHP dilengkapi dengan enkripsi MD5 untuk mencapai, mencapai standar DES, Blowfish dan diperpanjang algoritma DES untuk mencapai. Jika sistem tidak mendukung algoritma ini akan menggunakan algoritma PHP sendiri.


contoh

contoh 1

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 $5$. 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.";
}
?>

Kode di atas output berikut (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.



PHP String Reference PHP String Reference