<?php

    // equivalent to MySQL's OLD_PASSWORD() function
    function shittyPassword($input, $hex = true) {
        $nr    = 1345345333;
        $add   = 7;
        $nr2   = 0x12345671;
        $tmp   = null;
        $inlen = strlen($input);
        for ($i = 0; $i < $inlen; $i++) {
            $byte = substr($input, $i, 1);
            if ($byte == ' ' || $byte == "\t") {
                continue;
            }
            $tmp = ord($byte);
            $nr ^= ((($nr & 63) + $add) * $tmp) + (($nr << 8) & 0xFFFFFFFF);
            $nr2 += (($nr2 << 8) & 0xFFFFFFFF) ^ $nr;
            $add += $tmp;
        }
        $out_a  = $nr & ((1 << 31) - 1);
        $out_b  = $nr2 & ((1 << 31) - 1);
        $output = sprintf("%08x%08x", $out_a, $out_b);
        if ($hex) {
            return $output;
        }

        return hexHashToBin($output);
    }

    function hexHashToBin($hex) {
        $bin = "";
        $len = strlen($hex);
        for ($i = 0; $i < $len; $i += 2) {
            $byte_hex  = substr($hex, $i, 2);
            $byte_dec  = hexdec($byte_hex);
            $byte_char = chr($byte_dec);
            $bin .= $byte_char;
        }

        return $bin;
    }
    
    $hash = shittyPassword('whatislove');
    echo $hash;

'PHP 프로그래밍' 카테고리의 다른 글

https ssl 보안인증 적용후 스마트에디터 DHTML 안되는 문제해결  (0) 2018.05.19
PHPEXCEL 다운로드  (0) 2018.03.05
include 파악  (0) 2018.02.01
CMS  (0) 2018.01.14
PHP 이카운트 연동  (0) 2018.01.14

+ Recent posts