Latest web development tutorials
×

PHP 코스

PHP 코스 PHP 간략한 소개 PHP 설치 PHP 문법 PHP 변수 PHP echo/print PHP 데이터 유형 PHP 상수 PHP 현 PHP 운영자 PHP If...Else PHP Switch PHP 배열 PHP 배열을 정렬 PHP 자동 전역 PHP While 순환 PHP For 순환 PHP 기능 PHP 매직 변수 PHP 네임 스페이스 PHP 객체 지향

PHP 형태

PHP 형태 PHP 폼 인증 PHP 형태 - 필수 입력 사항 PHP 형태 - 확인 이메일 및 URL PHP 완전한 형태의 인스턴스 PHP $_GET 변수 PHP $_POST 변수

PHP 고급 자습서

PHP 다차원 배열 PHP 날짜 PHP 포함 PHP 파일 PHP 파일 업로드 PHP Cookie PHP Session PHP E-mail PHP 보안 E-mail PHP Error PHP Exception PHP 필터 PHP 고급 필터 PHP JSON

PHP 7 새로운 기능

PHP 7 새로운 기능

PHP 데이터베이스

PHP MySQL 간략한 소개 PHP MySQL 연결 PHP MySQL 데이터베이스 만들기 PHP MySQL 데이터 테이블 만들기 PHP MySQL 데이터를 삽입 PHP MySQL 여러 데이터를 삽입 PHP MySQL 문 준비 PHP MySQL 데이터 읽기 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 간략한 소개 AJAX PHP AJAX 데이터베이스 AJAX XML AJAX 실시간 검색 AJAX RSS Reader AJAX 투표

PHP 참조 설명서

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 이미지 처리 PHP RESTful

PHP의 토굴 () 함수

PHP 문자열 참조 PHP 문자열 참조

정의 및 사용

토굴 () 함수는 문자열을 암호화하는 DES, 복어, 또는 MD5 알고리즘의 사용을 반환합니다.

다른 운영 체제 기능의 다른 동작에서, 어떤 운영 시스템은 알고리즘의 하나 이상의 형태를 지원한다. 설치시, PHP는 무엇을 사용할 수 있으며 어떤 알고리즘 알고리즘을 확인합니다.

정확한 알고리즘은 소금 인수의 형식과 길이에 의존한다. 염 문자열을 생성하는 특정 암호화 방식과 특정 문자열 수를 증가시켜보다 안전한 암호화 할 수있다.

여기에 몇 가지 상수와 토굴 () 함수가 사용됩니다입니다. 상수 값은 PHP가 설치시에 설정됩니다.

상수 :

  • [CRYPT_SALT_LENGTH] - 암호 길이 기본. 표준 DES 암호화 2의 길이를 사용하여
  • [CRYPT_STD_DES] - DES 암호화 알파벳 "./0-9A-Za-z"에서이 문자 소금 표준을 기반으로. 기능으로 이어질 것입니다 소금에 잘못된 문자가 실패했습니다.
  • [CRYPT_EXT_DES] - DES 기반 암호화는 반복 횟수의 4 바이트와 소금 성분의 4 바이트 뒤에 밑줄 염 9 문자를 확장. 이들은 첫째, 인쇄 가능한 문자로 6, 최하위 문자를 각각 인코딩됩니다. 0-63 값은 "./0-9A-Za-z"로 인코딩됩니다. 기능으로 이어질 것입니다 소금에 잘못된 문자가 실패했습니다.
  • [CRYPT_MD5] - MD5 암호화는 $ 1 $로 시작, 소금 (12) 문자가 있습니다.
  • [CRYPT_BLOWFISH] - 복어 암호화뿐만 아니라 "./0-9A-Za-z"알파벳에서 $의 2A의 $, $ 2 배 $ 또는 $ (2Y) 소금의 $ 시작, 두 자릿수 비용 매개 변수 "$"가 22 자. 함수가 0의 문자열을 반환 트리거 알파벳 문자 이외의 사용하십시오. "$"파라미터 복어 해싱 알고리즘은 04-31 범위에 있어야 반복의 수의베이스 2 로그이다. 기능이 실패에이 범위를 벗어나는 값이 이어질 것입니다.
  • [CRYPT_SHA_256] - SHA-256 암호화는 $ 5 $로 시작, 소금 (16) 문자가 있습니다. 만일 염 문자열 "발사 = <N> $"시작되면 해시 루프를 나타내는데 사용 N 배의 디지털 값이 선정 된 파라미터 복어 유사하다 실행된다. 사이클의 기본 번호 5000, 최소치는 1000이고, 최대는 999999999이다. N은이 범위를 벗어난 값이 가장 가까운 경계 값으로 변환 될 것이다.
  • [CRYPT_SHA_512] - SHA-512 암호화는 $ (6) $로 시작, 소금 (16) 문자가 있습니다. 만일 염 문자열 "발사 = <N> $"시작되면 해시 루프를 나타내는데 사용 N 배의 디지털 값이 선정 된 파라미터 복어 유사하다 실행된다. 사이클의 기본 번호 5000, 최소치는 1000이고, 최대는 999999999이다. N은이 범위를 벗어난 값이 가장 가까운 경계 값으로 변환 될 것이다.

이 기능은 여러 알고리즘 시스템을 지원에 일정 이상 지원하는 경우, 그렇지 않으면 설정, "1"로 설정되어 "0"

주 : 해당 암호 해독 기능이 없습니다.굴 () 함수는 단방향 알고리즘을 사용한다.


문법

crypt( str,salt )

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

기술 세부 사항

반환 값 : 미만 13 문자를 반환하지 않으면 반환, 문자열을 암호화 문자열의 보장은 소금 다릅니다.
PHP 버전 : 4+
업데이트 로그 : PHP 5.3.7에서 높은 잠재적 인 공격을 처리하기 위해 $ 2 배 $와 $ 2Y $ 복어 모드를 추가 할 수 있습니다.

PHP 5.3.2에서, 상수 SHA-256 및 SHA-512을 추가합니다.

이후 PHP 5.3.2 이후, 잘못된 루프에서 복어는 DES 다시 ( "* 0"또는 "* 1") "실패"문자열을 반환하는 대신합니다.

PHP 5.3.0부터 PHP는 표준 DES, 복어를 달성하고 달성하기 위해 DES 알고리즘을 확장 달성하기 위해 MD5 암호화와 함께 제공됩니다. 시스템이 지원하지 않는 경우 이러한 알고리즘 PHP 자신의 알고리즘을 사용한다.


예 1

이 예에서, 우리는 다른 알고리즘을 테스트합니다 :

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

위의 코드는 다음과 (운영 체제)에 따라 출력한다 :

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 문자열 참조 PHP 문자열 참조