웹을 개발할 때 암호 암호화는 사용자 데이터 보안을 보호하는 데 핵심 링크입니다. PHP는 Crypt () 함수가 기본이지만 매우 유용한 암호화 도구 인 다양한 암호화 방법을 제공합니다. 단방향으로 문자열을 암호화 할 수 있으며 종종 암호 해싱에 사용됩니다. 이 기사는 Crypt () 함수, 기본 구문, 다양한 암호화 알고리즘, 실제 응용 프로그램의 예와 예방 조치를 자세히 소개합니다.
Crypt () 는 문자열을 암호화하는 데 사용되는 PHP의 내장 암호화 기능입니다. 일원 암호화 알고리즘을 사용하므로 암호화 결과는 돌이킬 수 없으므로 암호와 같은 민감한 데이터를 저장하는 데 매우 적합합니다.
PHP는 또한 password_hash () 및 hash () 와 같은 최신 암호화 방법을 제공하지만 crypt () 의 작동 방식을 이해하면 개발자가 암호화의 기본 사항을 마스터하는 데 여전히 도움이됩니다.
string crypt ( string $string [, string $salt ] )
$ String : 암호화 해야하는 원래 문자열입니다.
$ 소금 : 암호화에 사용되는 "소금 값"을 지정하는 선택적 매개 변수. 다른 소금 값과 알고리즘은 최종 암호화 결과에 영향을 미칩니다.
crypt () 함수는 제공하는 소금 값 형식에 따라 여러 암호화 알고리즘을 지원합니다. 다음은 일반적으로 사용되는 소금 가치 형식과 해당 알고리즘입니다.
DES (기본값)
crypt('mypassword', 'rl');
MD5
crypt('mypassword', '$1$usesomesalt$');
블로우 피쉬
crypt('mypassword', '$2y$10$abcdefghijklmnopqrstuv');
SHA-256
crypt('mypassword', '$5$rounds=5000$anexamplestringforsalt$');
SHA-512
crypt('mypassword', '$6$rounds=5000$anexamplestringforsalt$');
<?php
$password = 'secure123';
$salt = '$2y$10$usesomesillystringforex$';
$hashed = crypt($password, $salt);
echo $hashed;
?>
출력 결과는 암호화 된 문자열입니다. 다시 실행 되더라도 결과는 동일하며, 이는 사용자가 로그인하여 검증 될 때 비밀번호 비교에 적합합니다.
비밀번호를 확인할 때는 동일한 소금 값으로 사용자가 입력 한 암호를 다시 밀어 넣은 다음 데이터베이스에 저장된 해시 값과 비교해야합니다.
<?php
$input_password = 'secure123';
$stored_hash = '$2y$10$usesomesillystringforex$JeW8SuJSvSpEtBCUJ8JXoeK1G5Lmbl9Hz7tpIdAd4wczP8t9UO1nO';
if (crypt($input_password, $stored_hash) === $stored_hash) {
echo '비밀번호 확인이 성공했습니다';
} else {
echo '오류 비밀번호';
}
?>
crypt ()를 사용하는 경우 Blowfish 또는 더 높은 보안 알고리즘을 선택하는 것이 좋습니다.
crypt ()는 자동으로 소금 값을 생성하지 않으며 개발자는 수동으로 전달해야합니다.
PHP 5.3은 알고리즘에 대한 지원을 향상 시켰지만 이후 버전에서 crypt () 대신 암호 _hash ()를 사용하는 것이 좋습니다.
사용자가 등록하면 암호화 된 암호를 생성하고 데이터베이스에 저장할 수 있습니다.
<?php
$password = 'mypassword';
$salt = '$2y$10$' . substr(strtr(base64_encode(random_bytes(16)), '+', '.'), 0, 22);
$hash = crypt($password, $salt);
// 할 것이다 $hash 데이터베이스에 저장하십시오
echo '성공적으로 등록되었습니다,암호화 암호는입니다:' . $hash;
?>
Crypt () 는 PHP가 제공하는 강력한 암호화 기능입니다. 다양한 소금 값 형식을 제공함으로써 다중 암호화 알고리즘을 사용하여 문자열을 암호화 할 수 있습니다. Password_hash () 와 같은 기능을 사용하여 현대 개발에서 암호 보안을 처리하는 것이 좋습니다. Crypt () 의 메커니즘을 이해하면 보안 개발을위한 좋은 기초가 될 수 있습니다.
Crypt ()는 사용자 정의 알고리즘이 있거나 오래된 프로젝트와 호환 될 때 여전히 중요한 역할을합니다. 로그인 시스템을 구축하거나 민감한 데이터 저장 또는 처리 인증 메커니즘을 구축하든 암호화 기능의 합리적인 사용은 항상 웹 사이트 보안을 보장하는 데 필수적인 부분입니다.