PHP 암호 화 복호화 문자열 함수 원본 코드 다운로드

프로젝트 에서 때때로 우 리 는 PHP 를 사용 하여 특정한 정 보 를 암호 화해 야 한다.즉,암호 화 알고리즘 을 통 해 암호 화 문자열 을 생 성 하 는 것 이다.이 암호 화 된 문자열 은 복호화 알고리즘 을 통 해 복호화 할 수 있 고 프로그램 이 복호화 후의 정 보 를 처리 할 수 있다.
효과 도 를 먼저 보 여 드 리 고 관심 있 는 친구 들 은 전문 을 계속 읽 겠 습 니 다.

효과 시범       원본 코드 다운로드
필 자 는 비교적 전형 적 인 PHP 암호 화 복호화 함수 코드 를 수록 하여 모두 에 게 공유 했다.암호 화 복호화 원 리 는 보통 일정한 암호 화 복호화 알고리즘 을 통 해 키 를 알고리즘 에 넣 고 암호 화 복호화 결 과 를 얻 습 니 다.
1,매우 강력 한 authcode 암호 화 함수,Discuz!고전 코드(상세 설명 포함):

function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { 
 //       ,                     
 $ckey_length = 4; 
 //    
 $key = md5($key ? $key : $GLOBALS['discuz_auth_key']); 
 //   a       
 $keya = md5(substr($key, 0, 16)); 
 //   b            
 $keyb = md5(substr($key, 16, 16)); 
 //   c          
 $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): 
substr(md5(microtime()), -$ckey_length)) : ''; 
 //         
 $cryptkey = $keya.md5($keya.$keyc); 
 $key_length = strlen($cryptkey); 
 //   , 10        ,          ,10 26     $keyb(  b), 
//                  
 //        ,   $ckey_length   ,     $ckey_length        ,        
 $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : 
sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string; 
 $string_length = strlen($string); 
 $result = ''; 
 $box = range(0, 255); 
 $rndkey = array(); 
 //       
 for($i = 0; $i <= 255; $i++) { 
 $rndkey[$i] = ord($cryptkey[$i % $key_length]); 
 } 
 //       ,     ,     ,     ,               
 for($j = $i = 0; $i < 256; $i++) { 
 $j = ($j + $box[$i] + $rndkey[$i]) % 256; 
 $tmp = $box[$i]; 
 $box[$i] = $box[$j]; 
 $box[$j] = $tmp; 
 } 
 //         
 for($a = $j = $i = 0; $i < $string_length; $i++) { 
 $a = ($a + 1) % 256; 
 $j = ($j + $box[$a]) % 256; 
 $tmp = $box[$a]; 
 $box[$a] = $box[$j]; 
 $box[$j] = $tmp; 
 //             ,      
 $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256])); 
 } 
 if($operation == 'DECODE') { 
 //        ,           
 if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && 
substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) { 
  return substr($result, 26); 
 } else { 
  return ''; 
 } 
 } else { 
 //            ,           ,              
 //                  ,         ,   base64   
 return $keyc.str_replace('=', '', base64_encode($result)); 
 } 
}
함수 authcode($string,$operation,$key,$expiry)의$string:문자열,명문 또는 비밀문서;$operation:DECODE 는 복호화 를 표시 하고 다른 것 은 암호 화 를 표시 합 니 다.$key:밀 스푼;$expiry:비밀문서 유효기간.
사용법:

$str = 'abcdef'; 
$key = 'www.helloweba.com'; 
echo authcode($str,'ENCODE',$key,0); //   
$str = '56f4yER1DI2WTzWMqsfPpS9hwyoJnFP2MpC8SOhRrxO7BOk'; 
echo authcode($str,'DECODE',$key,0); //   
2.복호화 함수 encrypt():

function encrypt($string,$operation,$key=''){ 
 $key=md5($key); 
 $key_length=strlen($key); 
 $string=$operation=='D'?base64_decode($string):substr(md5($string.$key),0,8).$string; 
 $string_length=strlen($string); 
 $rndkey=$box=array(); 
 $result=''; 
 for($i=0;$i<=255;$i++){ 
  $rndkey[$i]=ord($key[$i%$key_length]); 
 $box[$i]=$i; 
 } 
 for($j=$i=0;$i<256;$i++){ 
 $j=($j+$box[$i]+$rndkey[$i])%256; 
 $tmp=$box[$i]; 
 $box[$i]=$box[$j]; 
 $box[$j]=$tmp; 
 } 
 for($a=$j=$i=0;$i<$string_length;$i++){ 
 $a=($a+1)%256; 
 $j=($j+$box[$a])%256; 
 $tmp=$box[$a]; 
 $box[$a]=$box[$j]; 
 $box[$j]=$tmp; 
 $result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%256])); 
 } 
 if($operation=='D'){ 
 if(substr($result,0,8)==substr(md5(substr($result,8).$key),0,8)){ 
  return substr($result,8); 
 }else{ 
  return''; 
 } 
 }else{ 
 return str_replace('=','',base64_encode($result)); 
 } 
} 
함수 encrypt($string,$operation,$key)에서$string:암호 화 된 복호화 문자열 이 필요 합 니 다.$operation:암호 화 인지 복호화 인지 판단 합 니 다.E 는 암호 화 를 표시 하고 D 는 복호화 를 표시 합 니 다.$키:밀 스푼.
사용법:

$str = 'abc'; 
$key = 'www.helloweba.com'; 
$token = encrypt($str, 'E', $key); 
echo '  :'.encrypt($str, 'E', $key); 
echo '  :'.encrypt($str, 'D', $key); 
이상 의 내용 은 여러분 에 게 소 개 된 PHP 암호 화 복호화 문자열 함수 에 원본 코드 를 첨부 하여 다운로드 한 모든 서술 입 니 다.여러분 이 좋아 하 시 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기