>백엔드 개발 >PHP 튜토리얼 >PHP에서 crypt() 함수 분석(코드 예제 포함)

PHP에서 crypt() 함수 분석(코드 예제 포함)

autoload
autoload원래의
2021-04-19 13:57:452907검색

    PHP에서 crypt() 함수 분석(코드 예제 포함)

    crypt() 函数返回使用 DESBlowfishMD5 算法加密的字符串。在不同的操作系统上,该函数的行为不同,某些操作系统支持一种以上的算法类型。在安装时,PHP 会检查什么算法可用以及使用什么算法。确切的算法依赖于 $salt 参数的格式和长度。$salt 可以通过增加由一个特定字符串与一个特定的加密方法生成的字符串的数量来使得加密更安全。本文带大家来一起看一看PHP中的crypt()函数。

语法:

crypt ( string $str   , string $salt = ?   ) : string
  • $str:规定要编码的字符串。

  • $salt:用于增加被编码字符数目的字符串,以使编码更加安全。如果未提供 salt 参数,则每次调用该函数时会随机生成一个。

  • 返回值:返回加密字符串,如果失败则返回一个小于 13 个字符并保证不同于$ salt 的字符串。

代码实例:


1.Standard DES:

if (CRYPT_STD_DES == 1) {
    echo 'Standard DES: ' . crypt('rasmuslerdorf', 'rl') ;
}
//Standard DES: rl.3StKT.4T8M

2.Extended DES:

if (CRYPT_EXT_DES == 1) {
    echo 'Extended DES: ' . crypt('rasmuslerdorf', '_J9..rasm') ;
}
//Extended DES: _J9..rasmBYk8r9AiWNc

3.MD5:

if (CRYPT_MD5 == 1) {
    echo 'MD5:          ' . crypt('rasmuslerdorf', '$1$rasmusle$') ;
}
//MD5: $1$rasmusle$rISCgZzpwk3UhDidwXvin0

4.Blowfish:

if (CRYPT_BLOWFISH == 1) {
    echo 'Blowfish:     ' . crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$') ;
}
//Blowfish: $2a$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi

5.SHA-256:

if (CRYPT_SHA256 == 1) {
    echo 'SHA-256:      ' . crypt('rasmuslerdorf', '$5$rounds=5000$usesomesillystringforsalt$');
}
//SHA-256: $5$rounds=5000$usesomesillystri$KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6

6.SHA-512:

if (CRYPT_SHA512 == 1) {
    echo 'SHA-512:      ' . crypt('rasmuslerdorf', '$6$rounds=5000$usesomesillystringforsalt$');
}
//SHA-512: $6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21

推荐:2021年PHP面试题大汇总(收藏)》《php视频教程

위 내용은 PHP에서 crypt() 함수 분석(코드 예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.