제목 | AES 암호화 라이브러리는 없나요??? | ||
---|---|---|---|
글쓴이 | 이그제트 | 작성시각 | 2016/03/10 17:08:43 |
|
|||
데이터 암호화를 AES로 처리를 해야하는데
코드이그나이터용 라이브러리가 혹시 있을까요??? 답변 부탁드립니다. |
|||
다음글 | 중복로그인 식별방법 및 도메인문의 | ||
이전글 | $this->db->where() 공백이 왜... (3) | ||
Luj
/
2016/03/10 17:25:44 /
추천
0
|
kaido
/
2016/03/11 09:00:47 /
추천
0
제거 라이브러리 하나 올려드릴게요 ㅎㅎ <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class Secretlib { protected static $key_size = 128; // The default key size in bits protected static $valid_key_sizes = array(128, 192, 256); // Sizes in bits protected static $key = "your key"; protected static $iv = "1234567890123"; // sample iv public static function pkcs5Pad2($data, $blocksize) { $pad = $blocksize - (strlen($data) % $blocksize); $returnValue = $data . str_repeat(chr($pad), $pad); return $returnValue; } public static function enc_aes128_ecb($data, $key = null, $iv = null, $dataAs = 0) { if (!$key) $key = Secretlib::$key; if (!$iv) $iv = Secretlib::$iv; $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, 'ecb'); $cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 'ecb', ''); // Add padding to String $data = self::pkcs5Pad2($data, $size); $length = strlen($data); mcrypt_generic_init($cipher, $key, $iv); $data = mcrypt_generic($cipher, $data); $data = bin2hex($data); mcrypt_generic_deinit($cipher); return $data; } public static function dec_aes128_ecb($data, $key = null, $iv = null, $dataAs = 0) { if (!$key) $key = Secretlib::$key; if (!$iv) $iv = Secretlib::$iv; $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, 'ecb'); $cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 'ecb', ''); mcrypt_generic_init($cipher, $key, $iv); $data = pack('H*', $data); $data = mdecrypt_generic($cipher, $data); mcrypt_generic_deinit($cipher); return Secretlib::pkcs5Unpad($data); } private static function pkcs5Unpad($data) { $pad = ord($data{strlen($data) - 1}); if ($pad > strlen($data)) return false; if (strspn($data, chr($pad), strlen($data) - $pad) != $pad) return false; return substr($data, 0, -1 * $pad); } }
ecb 말고도 다른걸로도 사용 가능 합니다. mcrypt 로 검색하셔서 원하는 대로 수정해서 사용하세요.^^ |
$this->load->model('aes_m');
$this->aes_m->setKey($licenseKey); // Key Set 하는 부분을 깜빡했었네요...ㅎㅎ;
base64_encode($this->aes_m->encrypt($var));
$this->aes_m->decrypt(base64_decode($var));
이렇게 사용하고 있어요ㅎㅎ