PHP 암호화 확장 라이브러리 - Mhash 확장 라이브러리 예시 사용법 상세 설명

黄舟
풀어 주다: 2023-03-07 12:58:01
원래의
3564명이 탐색했습니다.

PHP 암호화 확장 라이브러리 - Mhash 확장 라이브러리

Mhash 확장 라이브러리란 무엇입니까? Mhash는 이산 수학 원리를 기반으로 한 되돌릴 수 없는 PHP 암호화 확장 라이브러리입니다. , 이는 기본적으로 활성화되어 있지 않습니다. mhash는 원본 텍스트 없이 확인 값, 메시지 다이제스트, 메시지 인증 코드를 생성하고 키 정보(예: 비밀번호)를 저장하는 데 사용할 수 있습니다.

1. Mhash 확장 라이브러리 설치

Mhash 라이브러리 설치는 Mcrypt 확장 라이브러리 설치와 유사하므로 여기서는 자세히 소개하지 않겠습니다. 이전 글 "PHP 암호화 확장 라이브러리—Mcrypt 확장 라이브러리"를 참고하세요!

2.Mhash 확장 라이브러리 상수

Mhash 라이브러리는 MD5, SHA, CRC32 등 다양한 해싱 알고리즘을 지원하며 mhash_count()를 사용하여 출력할 수 있습니다. 및 mhash_get_hash_name() 함수 지원되는 알고리즘 이름입니다. 샘플 코드를 살펴보겠습니다.

<?php
header("Content-Type:text/html; charset=utf-8");
$num = mhash_count();  //函数返回最大的hash id
echo "mhash库支持的算法有:<br>";
for($i=0;$i<=$num;$i++){
    echo $i."=>".mhash_get_hash_name($i)."<br>"."";       //输出每一个hash id 的名称
}
?>
로그인 후 복사

출력 결과는 다음과 같습니다.

PHP 암호화 확장 라이브러리 - Mhash 확장 라이브러리 예시 사용법 상세 설명

참고: 실제 애플리케이션에서 위의 상수를 사용하는 경우 , 알고리즘 이름 앞에는 MHASH_가 붙습니다. 예를 들어 CRC32는 MHASH_CRC32로 표시됩니다.

3.Mhash 애플리케이션

Mcrypt 확장 라이브러리의 30개 이상의 기능에 비해 Mhash 라이브러리에는 다음을 제외하고 5개의 기능만 있습니다. 위에서 사용한 두 가지 기능 외에도 다음 세 가지 기능이 소개됩니다.

(1)mhash_get_block_size() 함수

함수 구문 형식은 다음과 같습니다.

int mhash_get_block_size ( int $hash )
로그인 후 복사

이 함수는 블록 크기를 가져오는 데 사용됩니다. :mhash_get_biock_size(MHASH_CRC32)와 같은 매개변수 해시.

(2)mhash() 함수

함수 구문 형식은 다음과 같습니다.

string mhash(int hash,string data[,string key])
로그인 후 복사

이 함수는 해시 값을 반환합니다. 매개변수 hash는 사용할 알고리즘, 매개변수 data는 암호화할 데이터, 매개변수 key는 암호화에 사용되는 키입니다.

(3) mhash_keygen_s2k() 함수

함수 구문 형식은 다음과 같습니다.

string mhash_keygen_s2k ( int $hash , string $password , string $salt, int $bytes )
로그인 후 복사

이 함수는 다음에 따라 단어 단위를 반환합니다. 매개변수는 비밀번호와 솔트 섹션의 키 값이고, 매개변수인 해시는 사용할 알고리즘입니다. 솔트는 고정된 8바이트 값입니다. 사용자가 제공한 값이 8바이트 미만인 경우 0으로 채워집니다.

다음 예에서는 mhash_keygen_s2k() 함수를 사용하여 검사 코드를 생성하고, bin2hex() 함수를 사용하여 이진수 결과를 16진수로 변환합니다. 구체적인 코드는 다음과 같습니다.

<?php
header("Content-Type:text/html; charset=utf-8");
$filename = "08.txt";                          // 文件路径
$str = file_get_contents($filename);            //读取文件内容到变量$str中
$hash = 2 ;                                     //设置hash值
$password = "111";                             //设置变量$password
$salt = "1234";                                //设置变量$salt
$key = mhash_keygen_s2k(1,$password,$salt,10);  //生成key 值
$str_mhash =bin2hex(mhash($hash,$str,$key));    //使用$key 值、$hash值对字符串$str 加密
echo "文件 08.txt 的校验码是:".$str_mhash;  //输出校验码
?>
로그인 후 복사

출력 결과는 다음과 같습니다. 1. 관련 주제 권장 사항: "

PHP 암호화 기능

"PHP 암호화 확장 라이브러리 - Mhash 확장 라이브러리 예시 사용법 상세 설명

2.


PHP 암호화 확장 라이브러리 - Mcrypt 확장 라이브러리 사용 예시

위 내용은 PHP 암호화 확장 라이브러리 - Mhash 확장 라이브러리 예시 사용법 상세 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!