MongoDB 클라이언트 측 필드 수준 암호화를 사용하여 데이터를 암호화하고 해독하고 있습니다. 그런데 프로그램을 실행할 때마다 원래 바이너리 키가 변경되는 것을 발견했습니다. 이로 인해 이전에 암호화된 데이터를 새 키로 해독할 수 없기 때문에 검색하기가 어렵습니다.
MongoDB에서 클라이언트 측 필드 수준 암호화를 위해 일관된 암호화 키를 유지하는 방법이 있나요? 그렇다면 어떻게 할 수 있습니까?
https://www.mongodb.com/docs/manual/core/csfle/fundamentals/manual-encryption/#std-label-csfle-fundamentals-manual-encryption
https://go.dev/play/p/6W8e0OiPV2L
MongoDB 커뮤니티 프로젝트에서 문서의 특정 필드가 데이터베이스에 저장되기 전에 암호화된 다음 데이터베이스에서 검색할 때 해독되도록 클라이언트 측 필드 수준 암호화를 구현하려고 합니다.
MongoDB 문서를 따라해 왔으며 프로그램을 처음 실행했을 때 데이터를 성공적으로 암호화하고 복호화할 수 있었습니다. 그런데 프로그램을 다시 실행할 때마다 키가 변경되는 것을 발견하고 키를 동일하게 유지하고 싶습니다.
다음 줄은 삭제되어야 합니다:
으아악다음 줄은 키가 아직 존재하지 않는 경우에만 필요합니다.
으아악먼저 clientenc.getkeybyaltname
에 전화하여 키가 있는지 확인하세요.
"원래 바이너리 키가 변경된다"는 말은 데이터 암호화 키(dek)가 변경된다는 의미인 것 같습니다. 이는 dek가 저장된 컬렉션이 삭제되기 때문에 발생합니다.
고객 마스터 키(cmk)는 데이터 암호화 키(dek)를 암호화하는 데 사용하는 키입니다....
데이터 암호화 키(dek)는 mongodb 문서의 필드를 암호화하는 데 사용되는 키입니다. cmk를 사용하여 암호화된 Key Vault 컬렉션에 데이터 암호화 키를 저장합니다...
데이터 암호화 키(dek)를 삭제하면 해당 dek으로 암호화된 모든 필드를 영구적으로 읽을 수 없게 됩니다.
cmk를 제거하면 해당 cmk를 사용하여 암호화된 dek로 암호화된 모든 필드를 영구적으로 읽을 수 없게 됩니다.
위 내용은 MongoDB 클라이언트 필드 수준 암호화에서 일관된 암호화 키를 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!