반응형
    
    
    
  
PHP5를 사용하다 PHP7으로 버전을 업데이트 후
기존에 사용하던 mcrypt_encrypt와, mcrypt_decrypt가 작동하지 않는다
기존 사용 소스는 다음과 같다
	function encrypt ($key, $value, $IV)
	{                
		$padSize = 16 - (strlen ($value) % 16) ;
		$value = $value . str_repeat (chr ($padSize), $padSize) ;
		$output = mcrypt_encrypt (MCRYPT_RIJNDAEL_128, $key, $value, MCRYPT_MODE_CBC, $IV) ;                
		return base64_encode ($output) ;        
	}
	function decrypt ($key, $value, $IV)        
	{            	        
		$value = base64_decode ($value) ;                
		$output = mcrypt_decrypt (MCRYPT_RIJNDAEL_128, $key, $value, MCRYPT_MODE_CBC, $IV) ;                
		
		$valueLen = strlen ($output) ;
		if ( $valueLen % 16 > 0 )
			$output = "";
		$padSize = ord ($output{$valueLen - 1}) ;
		if ( ($padSize < 1) or ($padSize > 16) )
			$output = "";                         
		for ($i = 0; $i < $padSize; $i++)
		{
			if ( ord ($output{$valueLen - $i - 1}) != $padSize )
				$output = "";
		}
		$output = substr ($output, 0, $valueLen - $padSize) ;
		return $output;        
	} 
PHP7에서는 없어졌단다..
구글링 결과 다음과 같이 하니 잘 작동이된다
	function encrypt ($key, $value, $IV) {
		$value = base64_encode(openssl_encrypt($value, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $IV));
		return $value;
	}
	function decrypt ($key, $value, $IV) {
		$value = base64_decode ($value) ;
		$value = openssl_decrypt($value, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $IV);
		return $value;
	}
소스코드가 더욱 간단해졌다
참쉽죠?
반응형
    
    
    
  'WEB > Etc' 카테고리의 다른 글
| [vue.js] <li> v-for 에러 (0) | 2021.11.01 | 
|---|---|
| [PHP] 로그인 페이지를 만들어보자 (DB사용) (0) | 2020.10.08 | 
| [PHP] CURL 홈페이지 파싱, 멀티 (0) | 2020.09.29 | 
 
										
									
댓글