개발 꿀팁/PHP

php AES 암호화 복호화 예제

Jammie 2022. 9. 20. 11:58
반응형

인스턴스 코드

<?php

class Aes{
	protected $key='';
	protected $iv='';
    /**
     * @param $key
     * @param $iv
     * @return $this
     * 배치하다 key iv
     */
    public function instance($key,$iv){
        $this->key=$key;
        $this->iv=$key;
        return $this;
    }

    /**
     * @param $input
     * @return string
     * 암호화
     */
    public function encrypt($input)
    {
        $data = openssl_encrypt($input, 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA, $this->hexToStr($this->iv));
        $data = base64_encode($data);
        return $data;
    }

    /**
     * @param $input
     * @return string
     *암호를 풀다
     */
    public function decrypt($input)
    {
        $decrypted = openssl_decrypt(base64_decode($input), 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA, $this->hexToStr($this->iv));
        return $decrypted;
    }

    /**
     * @param $hex
     * @return string
     * hex 변환
     */
    public function hexToStr($hex)
    {
        $string='';
        for ($i=0; $i < strlen($hex)-1; $i+=2)
        {
            $string .= chr(hexdec($hex[$i].$hex[$i+1]));
        }
        return $string;
    }

}

직접 복사하여 사용할 수 있음, php의 aes 암호화 라이브러리

 

반응형