현재 위치: > 함수 카테고리 모음> crypt

crypt

편도 문자열 해시
이름:crypt
분류:
사용 언어:php
한 줄 설명:일원 문자열 암호화 방법 (해싱).

정의 및 사용법

crypt() 함수는 DES, Blowfish 또는 MD5 알고리즘을 사용하여 암호화 된 문자열을 반환합니다.

이 기능은 운영 체제마다 다르게 작동하며 일부 운영 체제는 둘 이상의 알고리즘 유형을 지원합니다. 설치 중에 PHP는 사용 가능한 알고리즘과 사용 된 알고리즘을 확인합니다.

특정 알고리즘은 소금 매개 변수의 형식과 길이에 따라 다릅니다. 특정 암호화 방법을 사용하여 특정 문자열에 의해 생성 된 문자열의 수를 늘려서, 소금은 암호화를 더 안전하게 만들 수 있습니다.

다음은 crypt() 함수와 함께 사용되는 상수입니다. 이러한 상수 값은 설치 시간에 PHP에 의해 설정됩니다.

끊임없는:

[crypt_salt_length] 기본 암호화 길이. 길이 2와 함께 표준 DES 암호화를 사용하십시오
[crypt_std_des] 해시 표준 DES 알고리즘을 기반으로 한 해시는 "./0-9A-ZA-Z"문자에서 소금 값으로 두 문자를 사용합니다. 소금 값에서 불법 문자를 사용하면 crypt ()가 실패합니다.
[crypt_ext_des] DES 알고리즘을 기반으로 확장 된 해싱. 소금 값이 9자인 문자열은 1 밑줄과 4 바이트주기와 4 바이트 소금 값으로 구성됩니다. 그것들은 인쇄용 캐릭터로 인코딩되며 각 캐릭터는 6 비트를 가지고 있으며 가장 중요한 비트는 선호됩니다. 0 ~ 63은 "./0-9A-Za-Z"로 인코딩됩니다. 소금 값에서 불법 문자를 사용하면 crypt ()가 실패합니다.
[crypt_md5] MD5 HASH는 $ 1 $로 시작하는 12 자 문자열 소금 값을 사용합니다.
[crypt_blowfish] Blowfish 알고리즘은 다음 소금 값을 사용합니다. "$ 2A $", 2 비트 비용 매개 변수 "$"및 64 비트 문자열 "./0-9A-Za-Z"로 구성됩니다. 소금 값 으로이 범위 외부의 문자를 사용하면 crypt ()가 빈 줄을 반환합니다. 2 비트 비용 매개 변수는베이스 2에 루프 수가있는 로그이며 그 범위는 04-31입니다. 이 범위를 초과하면 crypt ()가 실패하게됩니다.
crypt_sha256 SHA-256 알고리즘은 $ 5 $로 시작하는 16 자 문자열 소금 값을 사용하여 해시했습니다. 소금 값 문자열이 "Rounds = <n> $"로 시작되면 N의 숫자 값은 Blowfish 알고리즘의 비용 매개 변수와 매우 유사한 해시 루프의 실행 수를 지정하는 데 사용됩니다. 루프의 기본 수는 5000, 최소값은 1000, 최대 값은 999,999,999입니다. n이 범위 외부는 가장 가까운 값으로 변환됩니다.
crypt_sha512 SHA-512 알고리즘은 해싱에 대해 $ 6 $로 시작하는 16 자 문자열 소금 값을 사용합니다. 소금 값 문자열이 "Rounds = <n> $"로 시작되면 N의 숫자 값은 Blowfish 알고리즘의 비용 매개 변수와 매우 유사한 해시 루프의 실행 수를 지정하는 데 사용됩니다. 루프의 기본 수는 5000, 최소값은 1000, 최대 값은 999,999,999입니다. n이 범위 외부는 가장 가까운 값으로 변환됩니다.

이 기능이 여러 알고리즘을 지원하는 시스템에서 위의 상수가 지원되면 "1"으로 설정되며 그렇지 않으면 "0"으로 설정됩니다.

참고 : 해당 암호 해독 기능이 없습니다. crypt() 함수는 일방화 알고리즘을 사용합니다.

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

 <? php
// 2 차 소금
if ( crypt_std_des == 1 )
{
에코 "표준 des :" . crypt ( 'something' , 'st' ) . "\ n <br>" ;
}
또 다른
{
echo "표준 des는 지원되지 않습니다. \ n <br>" ;
}

// 4 자 소금
if ( crypt_ext_des == 1 )
{
에코 "확장 된 des :" . crypt ( 'something' , '_s4..some' ) . "\ n <br>" ;
}
또 다른
{
echo "확장 된 des는 지원되지 않습니다. \ n <br>" ;
}

// $ 1 $로 시작하는 12 자
if ( crypt_md5 == 1 )
{
에코 "md5 :" . crypt ( '무언가' , '$ 1 $ somethin $' ) . "\ n <br>" ;
}
또 다른
{
echo "md5는 지원되지 않습니다. \ n <br>" ;
}

// $ 2A $로 시작하는 소금. 이중 번호의 비용 매개 변수 : 09. 22 문자
if ( crypt_blowfish == 1 )
{
에코 "블로우 피쉬 :" . crypt ( 'something' , '$ 2a $ 09 $ anexamplestringforsalt $' ) . "\ n <br>" ;
}
또 다른
{
echo "blowfish des는 지원되지 않습니다. \ n <br>" ;
}

// $ 5 $로 시작하는 16-Character Salt. 주변의 기본 수는 5000입니다.
if ( crypt_sha256 == 1 )
{
에코 "Sha-256 :" . crypt ( 'something' , '$ 5 $ Rounds = 5000 $ anexamplestringforsalt $' ) . "\ n <br>" ; }
또 다른
{
echo "sha-256 지원되지 않았습니다. \ n <br>" ;
}

// $ 5 $로 시작하는 16-Character Salt. 주변의 기본 수는 5000입니다.
if ( crypt_sha512 == 1 )
{
에코 "SHA-512 :" . crypt ( 'something' , '$ 6 $ Rounds = 5000 $ anexamplestringforsalt $' ) ;
}
또 다른
{
Echo "SHA-512 지원되지 않았습니다." ;
}
?>

위의 코드의 출력 (운영 체제에 따라 다름) :

 표준 des : stqadd7zlbbyi
확장 된 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.

문법

 crypt ( str , salt )
매개 변수 설명하다
str 필수의. 인코딩 할 문자열을 지정합니다.
소금 선택 과목. 인코딩 된 문자 수를 늘리기 위해 인코딩을보다 안전하게 만듭니다. 솔트 매개 변수가 제공되지 않으면 PHP는 함수가 호출 될 때마다 무작위로 하나를 생성합니다.
유사한 함수
  • 문자열을 배열로 변환합니다 str_split

    str_split

    문자열을배열로변환합니다
  • 대상 문자열에서 지정된 문자열의 마지막 발생을 계산합니다. strrpos

    strrpos

    대상문자열에서지정된문자열의마지막발생을
  • 문자열에 사용 된 단어에 대한 정보를 반환합니다 str_word_count

    str_word_count

    문자열에사용된단어에대한정보를반환합니다
  • 탈출 한 문자열을 반대로 탈출합니다 stripslashes

    stripslashes

    탈출한문자열을반대로탈출합니다
  • 하위 문자열 발생 수를 계산하십시오 substr_count

    substr_count

    하위문자열발생수를계산하십시오
  • 하나 이상의 문자열을 출력합니다 echo

    echo

    하나이상의문자열을출력합니다
  • 통화 문자열로 숫자를 형식화합니다 money_format

    money_format

    통화문자열로숫자를형식화합니다
  • 지정된 문자 세트에 문자열의 모든 문자가 존재하는 첫 번째 하위 문자열의 길이를 계산합니다. strspn

    strspn

    지정된문자세트에문자열의모든문자가존재하