Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 문자열 암호화 및 암호 해독?


MySQL에서 암호화 및 복호화하려면 MySQL에서 AES_ENCRYPT() 및 AES_DECRYPT() 사용 -

insert into yourTableName values(AES_ENCRYPT(yourValue,yourSecretKey));select cast(AES_DECRYPT(yourColumnName, yourSecretKey) as char) fromyourTableName;

위의 구문을 이해하기 위해 먼저 테이블을 생성하겠습니다 -

mysql> create table demo63−> (−> value blob−> );쿼리 OK, 영향을 받는 행 0개(2.60초)

insert 명령을 사용하여 일부 레코드를 테이블에 삽입하십시오. 삽입하는 동안 암호화 중입니다 −

mysql> demo63 값에 삽입(AES_ENCRYPT('John','PASS')); 쿼리 확인, 영향을 받는 행 1개(0.18초)mysql> demo63 값에 삽입(AES_ENCRYPT('David','PASS'));쿼리 OK, 1행 영향(0.41초)mysql> demo63 값에 삽입(AES_ENCRYPT('123456','PASS'));쿼리 OK, 1행 영향(0.41초)

select 문을 사용하여 테이블의 레코드 표시 -

mysql> select *from demo63;

이것은 다음과 같은 출력을 생성합니다 -

+------------------------------------+| 값 |+------------------------------------+| 0x16D8A4F11321D761920783BF96BB8314 || 0x0A85099F705F21D27B0129C54C4473AA || 0xAB7C6D6068BC100B0F04D1C4EA068AC9 |+------------------------------------------------+3행 세트(0.00초) 

다음은 복호화하는 쿼리입니다 -

mysql> 선택 캐스트(aes_decrypt(value, 'PASS') AS char) from demo63;

이것은 다음과 같은 출력을 생성합니다 -

+----------------------------------------------------------+| 캐스트(aes_decrypt(value, 'PASS') AS char) |+------------------------------------------------- -------+| 존 || 데이비드 || 123456 |+------------------------------------------+3행 세트 (0.00초)