mysql 에는 데이터를 암호화, 복호화하는 AES_ENCRYPT, AES_DECRYPT 함수가 있습니다. 이 암호화는 128비트 길이로 인코딩되어 저장됩니다. 그러나 소스를 수정해서 256비트까지 확장시킬수 있다고 합니다.

 

AES_ENCRYPT 는 문자열을 암호화하고, 바이너리 문자열을 반환하지만, AES_DECRYPT 는 암호화된 문자열을 복호화합니다. AES_DECRYPT 는 유효하지 않은 데이터는 padding을 감지하고, NULL을 반환합니다.

 

 

 # "암호화 키"는 임의의 값이 올 수 있으며, "문자열"은 암호화하고자 하는 값이 됩니다.



 # AES_ENCRYPT 암호화

  INSERT INTO 테이블명 VALUES (HEX(AES_ENCRYPT('문자열', '암호화 키')));



 # AES_DECRYPT 복호화

  SELECT AES_DECRYPT(UNHEX(필드명), '암호화 키') FROM 테이블명;

예제 (ex #1

 

 # AES_ENCRYPT 암호화

 INSERT INTO tbname VALUE (HEX(AES_ENCRYPT('123456','가나다라')));

 // 결과: 5A33E11DC0B638E4E5E74EBD52F55E3D



 # AES_DECRYPT 복호화

 SELECT AES_DECRYPT(UNHEX(필드명), '가나다라') FROM tbname;

출처: <https://blog.habonyphp.com/213>

 

 

 

DB 속도 + 검색 문제로 상기기능 실제적용 실패

Posted by 철냄비짱
,

MySQL 기간검색

DataBase/Mysql 2020. 4. 11. 19:12
select * from music 

where

 (type='song' or type='album')

 and 

created_date > DATE_ADD(now(), INTERVAL -1 hour);


 


 

music 테이블에서 type이 song 또는 album 인 데이터가 지난 1시간 동안 얼마나 들어왔는지 검색


 

-1~ -24 까지 하면 최근 한 시간 부터 24시간까지 검색이 가능


 

이런 식으로 끝에

-1 hour  최근 한 시간

-1 day 최근 하루

-1 month 최근 한달


 


 

 select * from music

 where 

created_date between '2013-10-10' and '2013-10-14';

 

10일부터 14일까지 검색

Posted by 철냄비짱
,

VO 별로 컨트롤을 위해

vo 구조대로

 

class 도 만들어보고 

class TestVO {
    this.idx = 0;
    this.pidx = 0;
    this.name = "TEST";
}

vat testVO = new this.TestVO()

 

Object로만 만들어보고

var testVO = {
    idx : 0
    pidx: 0,
    name: 'TEST'
}

 

function 으로도 만들어 봤더니

TestVO: function() {
    this.idx = 0
    this.pidx = 0
    this.name = "TEST"
}
var testVO = new this.TestVO()

 

 

function이 제일 낫더라

 

vo 객체 모은 내용만 js로 따로 뺄까 고민중

Posted by 철냄비짱
,