[PHP] 랜덤 암호화 키, 랜덤 IV 생성

2020. 7. 10. 18:14개발자료/Web


반응형

○ 16진수 형태의 암호화 키를 랜덤하게 생성하는 함수

function getRandomHexLoop($iSize=64) {
	$arrHex = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
	$strHex = '';
	for($i=0; $i<$iSize; $i++){
		$iRand = rand(0, 15);
		$strHex .= $arrHex[$iRand];
	}
	return $strHex;
}

 16진수 형태의 암호화 키를 OpenSSL 함수를 이용하여 랜덤하게 생성하는 함수

function getRandomHexOpenSSL($iSize=64) {
	return bin2hex(openssl_random_pseudo_bytes($iSize));
}

※ 두개의 함수중 상황에 맞게 사용하면됨.

 

pack 를 이용하여 2진 문자열로 변환 후 암호화 키로 사용

$key = pack('H*', getRandomHexLoop(64));

IV 랜덤 생성

$size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($size, MCRYPT_RAND);

 

 

 

반응형