티스토리 뷰

개발/PHP

[php] hash_hmac(), hash_hmac_file()

Jaeyeon Baek 2011. 10. 10. 20:47

hash_hmac을 이용한 암호화, hash의 성격대로 복호화는 사실상 불가능입니다.

함수 설명을 간단히 살펴보면

"Generate a keyed hash value using the HMAC method"

 

자, 예를 들어봅시다.

test라는 FILE에는 "1"만 기록되어 있고 이 파일을 hash_hmac_file()하면

87a7fa188c5f20be866a6de2eaba1ce71a6cf50

요런 값을 얻을 수 있습니다,

  

그렇다면 test라는 FILE에 2를 기록하고 hash_hmac_file()하게 되면?

26ae63ad577ee2071c66b09aab72f9247e76c743

 

전혀 다른 결과를 얻게 됩니다,

hash_hmac_file()은 파일의 무결성을 검증하는데 사용되고....

 

특정 문자열은 hmac_hash()를 통해 hash할 수 있습니다,

그렇다면 사용법을 확인해 봅니다.

 

  • hash_hmac()

        

 

 

  • hash_hmac_file()

 

 

 

 설명에 있듯이 secret key를 알지 못하면 동일한 hash값을 얻을 수 없으므로,

꽤 안전하다는 결론이 도출됩니다...

 

이번 개발은 이걸로 한번 가볼까요.........

 

 

 

 

 

 

 

 

추가 : hash_algos()

hash_algos() 내용을 print_r로 확인시에 사용 가능한 알고리즘 목록 확인 가능합니다,

대략 아래와 같습니다.

 


 

Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    [3] => sha1
    [4] => sha256
    [5] => sha384
    [6] => sha512
    [7] => ripemd128
    [8] => ripemd160
    [9] => ripemd256
    [10] => ripemd320
    [11] => whirlpool
    [12] => tiger128,3
    [13] => tiger160,3
    [14] => tiger192,3
    [15] => tiger128,4
    [16] => tiger160,4
    [17] => tiger192,4
    [18] => snefru
    [19] => gost
    [20] => adler32
    [21] => crc32
    [22] => crc32b
    [23] => haval128,3
    [24] => haval160,3
    [25] => haval192,3
    [26] => haval224,3
    [27] => haval256,3
    [28] => haval128,4
    [29] => haval160,4
    [30] => haval192,4
    [31] => haval224,4
    [32] => haval256,4
    [33] => haval128,5
    [34] => haval160,5
    [35] => haval192,5
    [36] => haval224,5
    [37] => haval256,5
)


댓글
댓글쓰기 폼