개발 꿀팁/PHP

php는 openssl을 사용하여 aes를 암호화하고 복호화한다

Jammie 2022. 9. 26. 14:05
반응형

php의 암호화 확장 mcrypt는 구식이며 더 이상 권장되지 않으며 libmrcypt는 mcrypt 확장의 핵심 라이브러리이지만 libmrcypt는 2007년에 폐기되었으며 많은 버그가 적시에 복구되지 않았으며 php는 공식적으로 권장되지 않으며 php7.2에서 이 확장을 제거할 것입니다.그래서 우리는 openssl 확장을 포용해야 하며, 다음은 openssl을 사용하여 암호를 해독합니다

<?php
class Aes
{
    protected $method; //암호화 방법
    protected $key; //비밀키
    protected $iv; //초기화 벡터
 
    public function __construct($key, $iv, $method = 'aes-256-cbc')
    {
        $this->method = $method;
        $this->key    = $key;
        $this->iv     = $iv;
    }
 
    public function encrypt($data)
    {
        return openssl_encrypt($data, $this->method, $this->key, 0, $this->iv);
    }
 
    public function decrypt($data)
    {
        return openssl_decrypt($data, $this->method, $this->key, 0, $this->iv);
    }
}
 
$data = '암호화할 데이터';
$key  = '44abebfdcf5cb06e'; //암호화 키를 사용하여 생성할 수 있습니다 bin2hex(random_bytes(16))생성
$iv   = '024dbca067c48dad'; //비어 있지 않은 초기화 벡터 사용 가능 bin2hex(random_bytes(16)) 생성
 
$aes = new Aes($key, $iv);
 
$result = $aes->encrypt($data);
echo $result;
echo "<br>";
echo $aes->decrypt($result);

 

반응형

'개발 꿀팁 > PHP' 카테고리의 다른 글

PHP의 Trait 특성  (0) 2022.09.27
php CLI 프로그래밍 명령줄 모드 관련 지식 포인트  (0) 2022.09.26
php 구현 데몬  (0) 2022.09.26
[php] 너 정말 트라이캐치 할 줄 알아?  (1) 2022.09.23
php 해석 yaml  (0) 2022.09.23