>  기사  >  백엔드 개발  >  mysql - PHP 바이너리 암호화 데이터는 어떻게 데이터 고유성을 보장합니까?

mysql - PHP 바이너리 암호화 데이터는 어떻게 데이터 고유성을 보장합니까?

WBOY
WBOY원래의
2016-08-30 09:36:441189검색

회사 데이터베이스의 민감한 사용자 데이터는 바이너리 암호문으로 암호화되어 mysql blob 유형 필드에 저장되어야 합니다. 이제 blob 유형이 아닌 것 같아서 사용자 데이터의 고유성을 보장하기 어렵다는 것을 알게 되었습니다. 필드는 직접적으로 논리 연산을 수행할 수 없으며 테이블의 모든 암호문을 읽어서 해독한 후 논리 연산을 수행할 수도 없습니다

답글 내용:

회사 데이터베이스의 민감한 사용자 데이터는 바이너리 암호문으로 암호화되어 mysql blob 유형 필드에 저장되어야 합니다. 이제 blob 유형이 아닌 것 같아서 사용자 데이터의 고유성을 보장하기 어렵다는 것을 알게 되었습니다. 필드는 직접적으로 논리 연산을 수행할 수 없으며 테이블의 모든 암호문을 읽어서 해독한 후 논리 연산을 수행할 수도 없습니다

사용자 ID를 기반으로 암호문 md5 캐시

이렇게 해야 한다고 생각합니다:

  1. 새 데이터 추가 시 암호화 전 일반 텍스트에 대해 md5 해싱을 수행한 후 해싱된 값을 저장하세요(물론 암호화된 blob도 저장해야 합니다)

  2. 기존 데이터는 시간을 들여 md5를 모두 복호화한 후 해싱된 값을 저장해야 합니다

고유성을 확인하려면 일반적으로 해시된 값을 직접 확인하는 것으로 충분합니다.

동일한 일반 텍스트 암호화가 항상 동일한 암호문을 생성한다는 것을 보장할 수 없다면 md5 암호문을 사용하지 않는 것이 좋습니다. 그러나 암호문은 적어도 키의 영향을 받습니다. 키를 변경하면 암호문은 확실히 변경됩니다... 게다가 일부 암호화 방법 자체는 초기 벡터를 무작위로 지정하므로 암호화된 암호문은 매번 다릅니다.

직접 mysql 내장 메소드 hex()

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.