본문으로 바로가기

config/app.php 설정 파일의 key 옵션을 지정해야 함

php artisan key:generate 명령어를 사용하여 키를 생성.

$val = '123456789';
$val_en = encrypt($val);
$val_de = decrypt($val_en);

echo $val."<br>".$val_en."<br>".$val_de;

또는

use Illuminate\Support\Facades\Crypt;

...

$encrypted_hp = Crypt::encryptString($hp);
//$decrypted = Crypt::decryptString($encrypted);

DB::table('TB_Inbounds')->insert(
   [
      'u_name' => '고객명',
      'u_hp' => $encrypted_hp,
      'u_created_at' => date("Y-m-d H:i:s"),
   ]
);


...


$users = DB::table('TB_Member')
   ->where('u_hp', $encrypted_hp)->first();
    
if($users){
   echo $users->u_name;
   echo Crypt::decryptString($users->u_hp);
                
}

이 암호화 값은 복호화가 되지만 값 자체는 매번 바껴서 DB에 저장하고 검색등에 사용할 수 없음

 

 

 

 

 

비밀번호 비교


// See the password_hash() example to see where this came from.
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';

if (password_verify('rasmuslerdorf', $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}


$sql_script = 'select * from USERS where username="'.$username.'"';

https://blog.naver.com/PostView.nhn?blogId=phongdaegi&logNo=222019518997&parentCategoryNo=&categoryNo=71&viewDate=&isShowPopularPosts=false&from=postView 

 

[CentOS7] 라라벨(Laravel) 비밀번호 해시(암호화, 복호화) 설정하기

해시(해싱)이란? 1.해시 암호화 하기 2-1. 해시 암호화(Bcrypt Work Factor)길이 설정하기 2-2. 해시 암...

blog.naver.com

 

 

 

 

 

전화번호등 검색에 필요할 필드일 경우 따로 Class를 만들어서 암호화 하면됨

 

app/Helper/Encrypt.php 

namespace App\Helper;

class Encrypt
{
    public $key = "431007e1a4b4690ad0bbd65a37230";
    private $keyhash;

    public function __construct(){
        $this->keyhash = substr(hash('sha256', $this->key, true), 0, 32);
        //Initial Vector(IV)는 128 bit(16 byte)
        $this->iv = chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0) . chr(0x0);
    }

    public function get_aes_encoding($str=''){
        $rtn='';
        if($str) $rtn = base64_encode(openssl_encrypt($str, 'aes-256-cbc', $this->keyhash, OPENSSL_RAW_DATA, $this->iv));
        return $rtn;
    }

    public function get_aes_decoding($str=''){
        $rtn='';
        if($str) $rtn = openssl_decrypt(base64_decode($str), 'aes-256-cbc', $this->keyhash, OPENSSL_RAW_DATA, $this->iv);
        return $rtn;
    }

}

 

$encrypt = new Encrypt();
$encrypt_hp = $encrypt->get_aes_encoding($hp);

$users = DB::table('TB_Inbounds')
   ->where('u_hp', $encrypt_hp)
   ->first();
                
if($users) echo $encrypt->get_aes_decoding($users->u_hp);

 

'[ Web 관련 ] > Laravel' 카테고리의 다른 글

Laravel 로그 남기기  (0) 2021.06.23
Form Data 유효성 검사  (0) 2021.06.22
블레이드 사용 관련 (blade 안에서 변수 사용 등)  (0) 2021.06.16
라라벨 sql 출력  (0) 2021.05.26
윈도우 10 라라벨 8 설치  (0) 2021.04.30