2012-02-01 3 views
-1

작은 개인용 응용 프로그램을 만들어야합니다. 개인 식별 정보 (내부 계정 번호 - SSN이 아니거나 매우 민감한 것)를 "암호화"하는 테이블에 저장하고 싶습니다. 나는 다음과 같이 데이터가 저장 받기를 원하시면 때문에암호화 용 MySQL 열

나는 따옴표를 암호화를 넣어 : 누군가가 물리적으로 테이블 데이터를보고하는 경우 방식으로 저장

  • 정보의 조각은 식별하지 않다고
  • 사람이 간단한 쿼리 결과 데이터 출력을 선택 않았다면 나는 내 자신의 쿼리 SELECT 문을 쓸 때 나는 아직도 데이터를 해독하고 읽을 수있는 방식을 제시 할 수
  • 아직 식별되지 않을 것이라고 방식으로 저장

다른 말로 표현하자면, 나는 그것을 적당히 암호화하여 여전히 암호를 해독하고 읽을 수 있기를 바랍니다. 나는 MD5 해싱이 가치를 항상 읽지 못하도록 고정 시킨다는 것을 안다. 나는 그것보다 적은 것을 원한다.

덕분에

+0

가능한 중복 열을 MySQL 테이블에?] (http://stackoverflow.com/questions/4275882/how-to-encrypt-a-specific-column-in-a-mysql-table) – ataylor

답변

3

MD5는 입니다. 그것은 해시입니다. 각 쿼리에서 주변의 토굴 키를 전달 괜찮다면

, 그것은 MySQL의에서 이것을 가지고 사소한 :

SELECT AES_DECRYPT(crypted_field, 'crypt key goes here') AS decrypted 

특정 암호화하는 방법 [의

INSERT INTO yourtable (crypted) VALUES (AES_ENCRYPT('some string', 'crypt key')); 
+0

Thanks @MarcB. 코드 스 니핏을 고맙게 생각합니다. –

2

나는 당신이 찾고있는 것은 "대칭 키 암호화"라고 생각합니다. 키를 사용하여 데이터를 암호화하고 필요에 따라 해독하는 데 필요한 동일한 키를 사용할 수 있습니다 (앞에서 말한 해시 함수와 달리 원래 데이터는 복구 할 수 없게됩니다). MySQL에서는 AES_Encrypt and AES_Decrypt functions.을 살펴볼 것입니다. 희망적으로 그것이 올바른 방향으로 향하게됩니다!

+0

알립니다. @thecoffman에게 감사합니다. –

2

MySQL은 DES and AES encryption을 모두 제공합니다. 키 관리를 알아 내야하지만 암호화 알고리즘을 사용할 수 있습니다.

+0

알았습니다. @andand 감사합니다. –