>

쿼리 설명 :모든 사용자의 데이터를 암호화 된 형식으로 저장하는 데이터베이스 테이블이 있다고 가정하겠습니다. 관리자가 사용자 데이터를 검색 할 수있는 기능이 있습니다. 이제 문제는 관리자가 텍스트 상자에 일반 텍스트를 입력하고 관리자 입력에 따라 모든 텍스트 변경시 사용자 목록을 필터링해야한다는 것입니다. 한편, 암호화 된 형태로 많은 데이터가 있으며 관리자가 입력 한 일반 텍스트를 기준으로 필터링해야합니다.

지금까지 내가 찾은 솔루션은 처음에 모든 데이터를 해독 한 다음 필터를 적용하는 것입니다. 하지만 데이터베이스에 수백만 개의 레코드가 있으면 현재 방식이 쓸모없고 비효율적 인 것 같습니다.

아무도 효율적인 방법으로 암호화 된 데이터를 검색하도록 도와 줄 수 있습니까?

도움을 주시면 감사하겠습니다!

감사합니다.


  • 답변 # 1

    와이즈 비즈 이것이 확장 가능한 솔루션이 아니라는 것이 맞습니다. 이 문제에 대해 자세히 알아 보려면 PHP 및 SQL을 사용하여 검색 가능한 암호화 된 데이터베이스 작성을 참조하십시오.

    하고 싶은 것은 :

    <올>

    인증 된 암호화를 사용하여 암호화 된 데이터를있는 그대로 저장합니다.

    암호문과 함께 일반 텍스트의맹인 색인을 저장하십시오.

    블라인드 인덱스는

    What solution I came up till now is, I am decrypting all the data at first and then applying the filter. But I am curious to know, What if I have millions of records in my database then current way seems useless and inefficient.

    가 될 수 있습니다

    민감한 값은 HMAC-SHA256(plaintext, separate_key) 를 사용해야합니다  또는 sodium_crypto_pwhash()  대신

    공간을 절약하려면 블라인드 인덱스를 자르고이를 블룸 필터로 취급하십시오.

    이 기능은 수동 및 능동 공격 모두에 저항하고 빠른 SELECT 쿼리에도 사용할 수있는 데이터 암호화입니다.

    업데이트 (2019-03-27) :이것을 직접 구축하는 대신이 디자인을 구현하는 CipherSweet를 확인하십시오.

    hash_pbkdf2()

관련 자료

  • 이전 Python Random Forest Regressor 제거에도 불구하고 Nan 값에서 오류 발생
  • 다음 python - programmingerror - psycopg2 설치 후 관계"django_session"오류가 존재하지 않습니다