현재 위치: > 함수 카테고리 모음> 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는 함수가 호출 될 때마다 무작위로 하나를 생성합니다.
유사한 함수
  • 문자열을 여러 변수로 구문 분석합니다 parse_str

    parse_str

    문자열을여러변수로구문분석합니다
  • 특수 HTML 엔티티를 일반 문자로 다시 변환하십시오 htmlspecialchars_decode

    htmlspecialchars_decode

    특수HTML엔티티를일반문자로다시변환하
  • Uuencode 인코딩 된 문자열을 디코딩하십시오 convert_uudecode

    convert_uudecode

    Uuencode인코딩된문자열을디코딩하
  • 문자열을 작은 덩어리로 분할하십시오 chunk_split

    chunk_split

    문자열을작은덩어리로분할하십시오
  • 로케일 정보 설정 setlocale

    setlocale

    로케일정보설정
  • 마스크와 일치하지 않는 출발 단지의 길이를 얻으십시오. strcspn

    strcspn

    마스크와일치하지않는출발단지의길이를얻으
  • 문자열에서 ROT13 변환을 수행하십시오 str_rot13

    str_rot13

    문자열에서ROT13변환을수행하십시오
  • 서브 스트링 교체 str_replace

    str_replace

    서브스트링교체
인기 기사