PHP의 암호화 및 복호화 기술
PHP는 널리 사용되는 웹 개발 언어이며, PHP의 암호화 및 복호화 기술은 데이터 보안에 있어 매우 중요합니다. 이 글에서는 PHP의 암호화 및 복호화 기술을 소개하고 웹 애플리케이션에서의 실제 적용을 살펴보겠습니다.
1. 암호화 기술
암호화 기술은 일반 텍스트를 암호화된 텍스트로 변환하는 프로세스입니다. PHP에서는 사용자 로그인 정보, 거래 데이터 등 전송되는 데이터의 보안을 보장하기 위해 암호화 기술이 주로 사용됩니다. PHP의 일반적인 암호화 기술은 다음과 같습니다.
- 해시 암호화
해시 암호화는 특정 알고리즘을 통해 임의 길이의 입력(메시지라고도 함)을 고정 길이 출력으로 변환하는 것입니다. 조건:
a 동일한 입력에 대해 알고리즘은 출력이 동일한지 확인해야 합니다.
b. 다른 입력에 대해 알고리즘은 출력이 다른지 확인해야 합니다.
PHP에서 일반적으로 사용되는 해시 암호화 함수에는 md5(), sha1() 등이 있습니다. md5() 함수는 모든 길이의 입력 문자열을 128비트 출력으로 변환하고 이를 32비트 16진수 문자열로 반환합니다.
예를 들어 다음 코드는 "Hello World" 문자열을 암호화된 문자열로 변환할 수 있습니다.
<?php $orig_str = "Hello World"; $encrypted_str = md5($orig_str); echo "加密前的字符串:$orig_str <br>"; echo "加密后的字符串:$encrypted_str"; ?>
- 대칭 암호화
대칭 암호화는 동일한 키를 사용하여 데이터를 암호화하고 해독하는 암호화 기술입니다. PHP에서는 mcrypt() 함수를 사용하여 대칭 암호화 작업을 수행합니다. mcrypt()는 DES, TripleDES, Blowfish, AES 등과 같은 매우 일반적인 암호화 알고리즘을 사용합니다.
다음 코드는 대칭 암호화에 mcrypt() 함수를 사용하는 방법을 보여줍니다.
<?php $key = '0123456789abcdef'; // 密钥 $input = 'Hello World'; // 加密前的字符串 $td = mcrypt_module_open('rijndael-128', '', 'cbc', ''); // 初始化加密模型 $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); // 初始化随机向量 mcrypt_generic_init($td, $key, $iv); // 初始化加密 $encrypted = mcrypt_generic($td, $input); // 进行加密操作 mcrypt_generic_deinit($td); // 结束加密 mcrypt_module_close($td); // 关闭加密模型 echo "加密前的字符串: $input <br>"; echo "加密后的字符串: ".base64_encode($encrypted)."<br>"; // 输出加密结果 ?>
- 비대칭 암호화
비대칭 암호화는 암호화와 복호화에 서로 다른 키를 사용하는 알고리즘입니다. PHP에서 일반적으로 사용되는 비대칭 암호화 알고리즘은 RSA입니다. 암호화 및 복호화에 RSA 알고리즘을 사용하는 경우 공개 키와 개인 키, 두 개의 키가 필요합니다. 일반적으로 공개 키는 공개되는 반면 개인 키는 소유자만 알 수 있습니다.
다음 코드는 PHP의 암호화 및 복호화에 RSA 알고리즘을 사용하는 방법을 보여줍니다.
<?php $data = 'Hello World'; // 生成RSA公钥,并将公钥保存到public.key文件中 $res = openssl_pkey_new(); openssl_pkey_export($res, $privkey); // 生成私钥并保存 $pubkey = openssl_pkey_get_details($res); $pubkey = $pubkey["key"]; file_put_contents("public.key", $pubkey); // 使用RSA公钥加密数据 openssl_public_encrypt($data, $encrypted, $pubkey); echo "加密前的数据:$data <br>"; echo "加密后的数据:$encrypted <br>"; // 使用RSA私钥解密数据 openssl_pkey_get_private($privkey); openssl_private_decrypt($encrypted, $decrypted, $privkey); echo "解密后的数据:$decrypted <br>"; ?>
2. 복호화 기술
복호화 기술은 암호화된 데이터를 복원하는 프로세스입니다. PHP에서는 사용자 로그인 정보, 거래 데이터 등 전송되는 데이터의 보안을 보장하기 위해 복호화 기술이 주로 사용됩니다. PHP의 일반적인 암호 해독 기술은 다음과 같습니다.
- 해시 암호 해독
해시 암호화는 되돌릴 수 없는 암호화 기술이므로 해독할 수 없습니다.
- 대칭 복호화
대칭형 복호화는 동일한 키를 사용하여 데이터를 복호화하는 암호화 기술입니다. PHP에서는 mcrypt() 함수를 사용하여 대칭 암호 해독 작업을 수행합니다.
다음 코드는 대칭 복호화에 mcrypt() 함수를 사용하는 방법을 보여줍니다.
<?php $key = '0123456789abcdef'; // 密钥 $input = 'vO8v4zinwuL6qvtSRWdq3g=='; // 加密后的字符串 $td = mcrypt_module_open('rijndael-128', '', 'cbc', ''); // 初始化加密模型 $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); // 初始化随机向量 mcrypt_generic_init($td, $key, $iv); // 初始化加密 $decrypted = mdecrypt_generic($td, base64_decode($input)); // 进行解密操作 mcrypt_generic_deinit($td); // 结束加密 mcrypt_module_close($td); // 关闭加密模型 echo "解密前的字符串: $input <br>"; echo "解密后的字符串: $decrypted"; // 输出解密结果 ?>
- 비대칭 복호화
비대칭 복호화는 암호화와 복호화에 서로 다른 키를 사용하는 알고리즘입니다. PHP에서 일반적으로 사용되는 비대칭 복호화 알고리즘은 RSA입니다.
다음 코드는 PHP에서 복호화를 위해 RSA 알고리즘을 사용하는 방법을 보여줍니다.
<?php $data = 'Hello World'; // 使用RSA公钥加密数据 $pubkey = file_get_contents("public.key"); openssl_public_encrypt($data, $encrypted, $pubkey); echo "加密前的数据:$data <br>"; echo "加密后的数据:$encrypted <br>"; // 使用RSA私钥解密数据 $privkey = file_get_contents("private.key"); openssl_private_decrypt($encrypted, $decrypted, $privkey); echo "解密后的数据:$decrypted <br>"; ?>
3. 응용 예제
실제 웹 개발에서 암호화 및 복호화 기술은 데이터 보안을 보장하는 중요한 수단입니다. 다음에서는 사용자 로그인 애플리케이션 예제를 사용하여 암호화 및 암호 해독 기술을 사용하여 사용자 로그인 정보를 보호하는 방법을 보여줍니다.
- 프런트엔드 양식
프런트엔드 페이지에서는 사용자의 로그인 정보를 얻기 위한 양식을 만들어야 합니다. 양식에는 사용자 이름과 비밀번호를 입력하는 두 개의 입력 상자가 있습니다.
<form method="post" action="login.php"> <label>用户名:</label> <input type="text" name="username"><br> <label>密码:</label> <input type="password" name="password"><br> <input type="submit" value="登录"> </form>
- 백엔드 로그인 확인
PHP 코드에서는 사용자가 입력한 사용자 이름과 비밀번호를 확인해야 합니다. 확인이 통과되면 사용자의 암호화된 정보가 다음 페이지에서 사용할 수 있도록 세션에 저장될 수 있습니다.
<?php session_start(); $username = $_POST['username']; $password = $_POST['password']; // 数据库连接等相关代码省略 // 检查用户名和密码是否匹配 if ($username == $db_username && $password == $db_password) { // 生成加密后的用户信息 $userinfo = array( 'username' => $username, 'password' => $password ); $encrypted = base64_encode(serialize($userinfo)); // 将加密后的用户信息保存到Session中 $_SESSION['userinfo'] = $encrypted; // 登录成功,跳转到首页 header("Location: index.php"); } else { // 登录失败,返回错误消息 echo "用户名或密码错误!"; } ?>
- 백엔드 홈페이지
백엔드 홈페이지에서는 Session에 저장된 암호화된 사용자 정보를 복호화하고 사용자 이름 및 기타 정보를 표시하는 작업이 필요합니다.
<?php session_start(); if (isset($_SESSION['userinfo'])) { // 从Session中获取加密后的用户信息 $encrypted = $_SESSION['userinfo']; // 解密用户信息 $userinfo = unserialize(base64_decode($encrypted)); $username = $userinfo['username']; echo "欢迎您,$username!"; } else { // 用户未登录,跳转到登录页 header("Location: login.php"); } ?>
요약하자면 암호화 및 복호화 기술은 PHP에서 중요한 응용 가치를 갖습니다. 웹 개발 과정에서는 사용자 데이터의 보안을 보장하는 것이 중요합니다. 개발자는 데이터 보안을 강화하기 위해 실제 요구 사항에 따라 적절한 암호화 및 암호 해독 기술을 선택해야 합니다.
위 내용은 PHP의 암호화 및 복호화 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사에서는 PHP가 행을 CSV로 형식화하고 파일 포인터를 작성하는 방법에 대해 자세히 설명합니다. 매우 실용적이므로 이 기사를 읽고 뭔가를 얻을 수 있기를 바랍니다. 행을 CSV로 포맷하고 파일 포인터에 씁니다. 1단계: 파일 포인터 열기 $file=fopen("path/to/file.csv","w") 2단계: fputcsv( ) 함수를 사용하여 행을 CSV 문자열로 변환합니다. CSV 문자열로. 이 함수는 다음 매개변수를 허용합니다: $file: 파일 포인터 $fields: 배열로서의 CSV 필드 $delimiter: 필드 구분 기호(선택 사항) $enclosure: 필드 따옴표(

이 기사에서는 PHP에서 현재 umask를 변경하는 방법에 대해 자세히 설명할 것입니다. 편집자는 이것이 매우 실용적이라고 생각하므로 이 기사를 읽고 뭔가를 얻을 수 있기를 바랍니다. 현재 umask를 변경하는 PHP 개요 umask는 새로 생성된 파일 및 디렉터리에 대한 기본 파일 권한을 설정하는 데 사용되는 PHP 함수입니다. 차단 권한을 나타내는 8진수인 하나의 인수를 허용합니다. 예를 들어 새로 생성된 파일에 대한 쓰기 권한을 방지하려면 002를 사용합니다. umask 변경 방법 PHP에서 현재 umask를 변경하는 방법에는 두 가지가 있습니다. umask() 함수 사용: umask() 함수는 현재 umask를 직접 변경합니다. 구문은 다음과 같습니다.

이 글에서는 PHP에서 고유한 파일 이름을 갖는 파일을 생성하는 방법에 대해 자세히 설명할 것입니다. 편집자는 이것이 매우 실용적이라고 생각하므로 이 글을 읽으신 후 뭔가를 얻으실 수 있기를 바랍니다. PHP에서 고유한 파일 이름을 가진 파일 만들기 소개 PHP에서 고유한 파일 이름을 가진 파일을 만드는 것은 파일 시스템을 구성하고 관리하는 데 필수적입니다. 고유한 파일 이름을 사용하면 기존 파일을 덮어쓰지 않고 특정 파일을 더 쉽게 찾고 검색할 수 있습니다. 이 가이드에서는 PHP에서 고유한 파일 이름을 생성하는 여러 가지 방법을 다룹니다. 방법 1: uniqid() 함수 사용 uniqid() 함수는 현재 시간과 마이크로초를 기반으로 고유한 문자열을 생성합니다. 이 문자열은 파일 이름의 기초로 사용될 수 있습니다.

어제 미국 증권거래위원회(SEC)의 암호화폐 자산 책임자였던 데이비드 허쉬(David Hirsch)가 사임하고 밈 화폐 발행 플랫폼 펌프닷펀(Pump.fun) 팀에 합류할 것이라는 소문이 돌았습니다. Pump.fun이 소셜 미디어 X에 메시지를 올렸을 때 조롱하는 은유가 담긴 트윗이 팀의 트레이딩 디렉터가 된 것을 축하했고 관련 내용이 각종 언론에 전달되기까지 했습니다. 펌프펀(Pump.fun)의 가짜뉴스는 가짜입니다. 어제 저녁(17일) 솔라나의 밈 화폐 발행 플랫폼인 펌프펀(Pump.fun)의 트윗이 공개되면서 전 SEC 암호화폐 자산이자 네트워크 부서장인 허쉬에 대한 루머가 시작되었습니다. Pump.fun 플랫폼으로 뛰어들어 소문을 퍼뜨려 보세요. Pump.fun에 대한 바이낸스의 트윗

이 기사에서는 파일의 MD5 해시를 계산하는 PHP에 대해 자세히 설명할 것입니다. 편집자는 이것이 매우 실용적이라고 생각하므로 이 기사를 읽고 뭔가를 얻을 수 있기를 바랍니다. PHP는 파일의 MD5 해시를 계산합니다. MD5(MessageDigest5)는 임의 길이의 메시지를 고정 길이 128비트 해시 값으로 변환하는 단방향 암호화 알고리즘입니다. 파일 무결성을 보장하고 데이터 신뢰성을 확인하며 디지털 서명을 생성하는 데 널리 사용됩니다. PHP에서 파일의 MD5 해시 계산하기 PHP는 파일의 MD5 해시를 계산하는 여러 가지 방법을 제공합니다. md5_file() 함수를 사용하십시오. md5_file() 함수는 파일의 MD5 해시 값을 직접 계산하고 32자를 반환합니다.

이 기사에서는 키 값을 뒤집은 후 PHP가 배열을 반환하는 방법을 자세히 설명합니다. 편집자는 이것이 매우 실용적이라고 생각하므로 이 기사를 읽고 뭔가를 얻을 수 있기를 바랍니다. PHP 키 값 뒤집기 배열 키 값 뒤집기는 배열의 키와 값을 교환하여 원래 키를 값으로, 원래 값을 키로 사용하여 새 배열을 생성하는 배열 작업입니다. 구현 방법 PHP에서는 다음 방법을 통해 배열의 키-값 뒤집기를 수행할 수 있습니다. array_flip() 함수: array_flip() 함수는 키-값 뒤집기 작업에 특별히 사용됩니다. 배열을 인수로 받고 키와 값이 교환된 새 배열을 반환합니다. $original_array=[

이 기사에서는 PHP가 파일을 주어진 길이로 자르는 방법에 대해 자세히 설명합니다. 편집자는 이것이 매우 실용적이라고 생각하므로 이 기사를 읽고 뭔가를 얻을 수 있기를 바랍니다. PHP 파일 자르기 소개 PHP의 file_put_contents() 함수는 파일을 지정된 길이로 자르는 데 사용할 수 있습니다. 잘림이란 파일 끝 부분을 제거하여 파일 길이를 줄이는 것을 의미합니다. 구문 file_put_contents($filename,$data,SEEK_SET,$offset);$filename: 잘라낼 파일 경로. $data: 파일에 쓸 빈 문자열입니다. SEEK_SET : 파일의 시작 부분으로 지정

이 글에서는 PHP가 특정 키가 배열에 존재하는지 여부를 어떻게 판단하는지 자세히 설명할 것입니다. 편집자는 이것이 매우 실용적이라고 생각하므로 이 글을 읽으신 후 참고하실 수 있기를 바랍니다. PHP는 지정된 키가 배열에 존재하는지 확인합니다. PHP에서는 지정된 키가 배열에 존재하는지 확인하는 여러 가지 방법이 있습니다. 1. isset() 함수를 사용합니다: isset($array["key"]) 이 함수 부울 값을 반환합니다. 지정된 키가 존재하면 true이고, 그렇지 않으면 false입니다. 2. array_key_exists() 함수를 사용하세요: array_key_exists("key",$arr
