Skip to content

Instantly share code, notes, and snippets.

@itskawsar
Forked from niczak/gist:2501891
Created January 30, 2017 12:09
Show Gist options
  • Select an option

  • Save itskawsar/3213704a9c45fd1e7401b4d05c110d9d to your computer and use it in GitHub Desktop.

Select an option

Save itskawsar/3213704a9c45fd1e7401b4d05c110d9d to your computer and use it in GitHub Desktop.

Revisions

  1. @niczak niczak created this gist Apr 26, 2012.
    51 changes: 51 additions & 0 deletions gistfile1.aw
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,51 @@
    <?php
    class Encryption {
    var $skey = "yourSecretKey"; // change this

    public function safe_b64encode($string) {
    $data = base64_encode($string);
    $data = str_replace(array('+','/','='),array('-','_',''),$data);
    return $data;
    }

    public function safe_b64decode($string) {
    $data = str_replace(array('-','_'),array('+','/'),$string);
    $mod4 = strlen($data) % 4;
    if ($mod4) {
    $data .= substr('====', $mod4);
    }
    return base64_decode($data);
    }

    public function encode($value){
    if(!$value){return false;}
    $text = $value;
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->skey, $text, MCRYPT_MODE_ECB, $iv);
    return trim($this->safe_b64encode($crypttext));
    }

    public function decode($value){
    if(!$value){return false;}
    $crypttext = $this->safe_b64decode($value);
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->skey, $crypttext, MCRYPT_MODE_ECB, $iv);
    return trim($decrypttext);
    }
    }

    /*
    Sample Call:
    $str = "myPassword";
    $converter = new Encryption;
    $encoded = $converter->encode($str );
    $decoded = $converter->decode($encode);
    echo "$encoded<p>$decoded";
    */

    ?>