묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
function_exists 에서 sha256, sha512 등 hash 함수 확인이 안되네요.
2015.01.31 12:03
비밀번호 해시 hash 저장 방법을
md5에서 sha512로 바꾸려고 시도중입니다.
서버 환경 :
리눅스
nginx 1.4.6
PHP Version 5.5.9
php 파일을 만들어서 일단 테스트를 해 보았는데요.
1 <!DOCTYPE html> 2 <meta charset="utf-8" /> 3 <?php 4 function get_time() { 5 list($usec, $sec) = explode(" ", microtime()); 6 return ((float)$usec + (float)$sec); 7 } 8 9 $algos = array('md5','sha1','sha256','sha512','whirlpool','bcrypt','scrypt'); 10 11 12 echo "<textarea style='width:800px;height:500px'>"; 13 echo "알고리즘\t수행시간\t해시값\t\t\t\t\tfunction_exists()\n"; 14 foreach($algos as $algo) { 15 $start = get_time(); 16 for($i=0;$i<1000;$i++) 17 $hash_value = hash($algo, 'testhash!1'); 18 $end = get_time(); 19 $time = $end - $start; 20 21 echo $algo."\t"; 22 echo number_format($time,5)."\t"; 23 echo $hash_value."\t"; 24 echo "exist?=".function_exists($algo)."\n"; 25 } 26 echo "</textarea>";
그 결과
알고리즘 수행시간 해시값 function_exists() md5 0.00086 705a6612fe474053e79d0494c9fa3965 exist?=1 sha1 0.00086 07c97cfbec2c25b6f1aba02f393b33f6765cf0e3 exist?=1 sha256 0.00146 9c64c70df3501b479b9631a0a6481b6c0d0427bd75c7a3133337105213bc2916 exist?= sha512 0.00160 e8bd620b57c715891406bcd5c9bb744bdabcc91dd82e4366a3ee63415800bc5bc2d1ba076ac25e3b557e9bc6122e068ccdd17b9ac384a9155ed1992f2fc17c13 exist?= whirlpool 0.00185 0d7903152df716e4f3345251d8fbe6aed2aaecdf441ee4719bcd59cb11c5a4a453ec915704dcc2ffd3fbbb5cef684bd6efdfd8ded9d6f137bcb8a0ffa9fcc428 exist?= bcrypt 0.00446 exist?= scrypt 0.00427 exist?=
sha512의 경우
hash 값은 정상적으로 출력되고 있지만,
function_exists() 결과값은 나오지 않습니다.
오직 md5하고 sha1만 function_exists() 결과가 1로 나옵니다.
그래서
xe member.model.php 에서
$isSha2 = ($this->useSha2 && function_exists('sha512'));
이런 식으로 쓰려고 했는데
function_exists('sha512') 결과가 반환되지 않아서 이대로는 못쓰고,
&& function_exists('sha512') 부분을 제거하고 써야할 것 같습니다.
당장은 문제가 없으니까 그렇게 써도 되겠지만,
다른 홈페이지에 적용한다거나 할 때 문제가 될 수도 있겠다 싶어서 해결을 보고 가야할 듯 합니다.
어떻게 해결을 해야 할까요?
댓글 3
-
YJSoft
2015.01.31 12:11
-
세상의모든계산기
2015.01.31 12:12
두놈만 따로 함수가 있는 거군요.
감사합니다.
-
세상의모든계산기
2015.01.31 12:27
이렇게 바꾸니까 확인이 되네요.24 echo "exist?=".function_exists($algo)."\n"; 24 echo "exist?=".(function_exists('hash') && in_array($algo, hash_algos()))."\n";
알고리즘 수행시간 해시값 hash_algos() md5 0.00062 705a6612fe474053e79d0494c9fa3965 exist?=1 sha1 0.00083 07c97cfbec2c25b6f1aba02f393b33f6765cf0e3 exist?=1 sha256 0.00129 9c64c70df3501b479b9631a0a6481b6c0d0427bd75c7a3133337105213bc2916 exist?=1 sha512 0.00150 e8bd620b57c715891406bcd5c9bb744bdabcc91dd82e4366a3ee63415800bc5bc2d1ba076ac25e3b557e9bc6122e068ccdd17b9ac384a9155ed1992f2fc17c13 exist?=1 whirlpool 0.00181 0d7903152df716e4f3345251d8fbe6aed2aaecdf441ee4719bcd59cb11c5a4a453ec915704dcc2ffd3fbbb5cef684bd6efdfd8ded9d6f137bcb8a0ffa9fcc428 exist?=1 bcrypt 0.00437 exist?= scrypt 0.00394 exist?=
글쓴이 | 제목 | 최종 글 |
---|---|---|
XE | 공지 글 쓰기,삭제 운영방식 변경 공지 [16] | 2019.03.05 by 남기남 |
jeni660 | 스크립트오류질문..& 메뉴링크 질문이요~~ | |
하프하프 | 네이버 웹마스터도구 질문드립니다. | |
Sydneylove | 개인홈페이지 xe 연동 관련 내용입니다.ㅠㅠ | |
달빛한묶음 | 실수로 전체 권한을 766으로 변경 후 빈 페이지가 뜹니다. [2] | 2015.01.31 by 달빛한묶음 |
세상의모든계산기 | function_exists 에서 sha256, sha512 등 hash 함수 확인이 안되네요. [3] | 2015.01.31 by 세상의모든계산기 |
자대련 | 누리고 쇼핑몰 배송비 에러입니다. | |
Kxo | 이 문법이 잘못된 건가요??? [2] | 2015.01.27 by Kxo |
추억팔이 | 닷X 웹호스팅 부하 차단 대응법 [11] | 2015.01.27 by 퍼니엑스이 |
XE모듈 | 서버가 다운되네요 도움 부탁드립니다 [2] | 2015.01.24 by JerryGoldman |
아잉콘 | 아이디/이메일 로그인 선택이 변경이 안되는 문제 [3] | 2015.01.23 by 아잉콘 |
파워뭉치 | 확장변수중 전화번호 형식관련 궁금한점 질문드려요.. [2] | 2015.01.23 by 파워뭉치 |
중년- | 간단한 html이 안먹히네요. [4] | 2015.01.22 by 중년- |
GREATGUY | 검색어 통계모듈 질문드립니다. | |
빅스타 | 사이트에 뭐이상한게 이렇게 많을까요? | |
뿌꾸빵 | 관리자페이지에서 installed 에 들어가려고 하면 오류메세지가뜹니다 | |
자대련 | 누리고 쇼핑몰 주소검색 에러. krzip 한국 우편번호 검색 오류 [3] | 2015.01.20 by 자대련 |
SUHONE | 위젯 페이지에 배경을 삽입해볼려고 합니다. | |
추억팔이 | 새로고침 없는 추천/비추천 버튼 노출 애드온 비회원 권한 [3] | 2015.01.16 by sejin7940 |
banaba | 위젯부분... [7] | 2015.01.16 by banaba |
곰돌_이 | 타이틀 변경하는 방법 [1] | 2015.01.13 by imagineshop |
function_exists는 함수의 존재 여부를 체크하는 함수로, md5와 sha1은 함수가 따로 있지만 sha256,sha512 등은 없습니다.(md5 : http://php.net/manual/en/function.md5.php , sha1 : http://php.net/manual/en/function.sha1.php )
hash_algos 함수에서 사용 가능한 해싱 방식을 array로 반환하니 이중에 특정 해싱 방법이 존재하는지 확인하는 방법을 사용하시면 됩니다.