QHashSeed Struct
헤더: | #include <QHashSeed> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
이후: | Qt 6.2 |
공용 함수
QHashSeed(size_t data = 0) | |
size_t | operator size_t() const |
정적 공용 멤버
QHashSeed | globalSeed() |
void | resetRandomGlobalSeed() |
void | setDeterministicGlobalSeed() |
상세 설명
QHashSeed 클래스는 QHash 시드를 전달하는 데 사용됩니다. 이는 QHash 에서 내부적으로 사용되며 사용자가 해시를 얻고 재설정할 수 있도록 세 가지 정적 멤버 함수를 제공합니다.
QHash 그리고 qHash() 함수는 "솔티드 해시"라고 불리는 것을 구현합니다. 이는 서로 다른 애플리케이션과 동일한 애플리케이션의 서로 다른 인스턴스가 동일한 입력에 대해 서로 다른 해싱 값을 생성하여 QHash 의 요소 순서를 외부 관찰자가 예측할 수 없도록 하려는 의도입니다. 이렇게 하면 해싱 테이블을 강제로 퇴보 모드로 전환하려는 공격에 대한 애플리케이션의 복원력이 향상됩니다.
대부분의 애플리케이션은 필요할 때 QHash 에서 처리하므로 해시 시드를 직접 처리할 필요가 없습니다. 그러나 애플리케이션은 QHash 에서와 같은 방식으로 애플리케이션 글로벌 임의의 값으로 사용할 수 있습니다( QRandomGenerator 도 참조하세요). resetRandomGlobalSeed () 함수가 호출되면 애플리케이션의 수명 기간 동안 글로벌 해시 시드가 변경될 수 있다는 점에 유의하세요. 글로벌 해시 사용자는 사용 중인 값을 저장하고 다시 가져오는 데 의존하지 않아야 합니다.
이 클래스는 또한 해시 시드를 결정론적 값으로 설정하는 기능을 구현하며, qHash() 함수는 데이터에도 고정 해싱 함수를 사용해야 한다는 의미로 받아들입니다. 이 기능은 애플리케이션 디버깅에만 사용하도록 되어 있습니다. 이 동작은 QT_HASH_SEED
환경 변수를 0 값으로 설정하여 제어할 수도 있습니다(다른 값은 무시됨).
QHash 및 QRandomGenerator 을참조하세요 .
멤버 함수 문서
[constexpr]
QHashSeed::QHashSeed(size_t data = 0)
data 을 시드로 사용하여 새 QHashSeed 객체를 생성합니다.
[static noexcept]
QHashSeed QHashSeed::globalSeed()
현재 글로벌 QHash 시드를 반환합니다. setDeterministicGlobalSeed ()가 호출되었거나 QT_HASH_SEED
환경 변수가 0으로 설정된 경우 이 함수가 반환하는 값은 0이 됩니다.
참고: 이 함수는 스레드에 안전합니다.
[static]
void QHashSeed::resetRandomGlobalSeed()
Qt 해싱 시드를 새로운 임의의 값으로 다시 시드합니다. 이 함수를 호출할 필요는 없지만, 장기간 실행되는 애플리케이션의 경우 해시 정보가 잠재적 공격자에게 노출되었을 수 있는 오랜 시간이 지난 후에 이 함수를 호출할 수 있습니다.
환경 변수 QT_HASH_SEED
가 0으로 설정된 경우, 이 함수를 호출하면 동작하지 않습니다.
Qt는 응용 프로그램을 실행하는 동안 이 함수를 호출하지 않지만, QT_HASH_SEED
변수가 0으로 설정되어 있지 않으면 globalSeed()가 반환하는 해시 시드는 이 함수를 호출한 것처럼 임의의 값이 됩니다.
참고: 이 함수는 스레드 안전합니다.
[static]
void QHashSeed::setDeterministicGlobalSeed()
Qt 해시 시드를 결정론적 값(0)으로 강제 설정하고 qHash() 함수에 미리 결정된 해싱 함수를 사용하도록 요청합니다. 이 모드는 디버깅에만 유용하며 프로덕션 코드에서는 사용해서는 안 됩니다.
일반 작업은 resetRandomGlobalSeed()를 호출하여 복원할 수 있습니다.
참고: 이 함수는 스레드에 안전합니다.
[constexpr noexcept]
size_t QHashSeed::operator size_t() const
반환된 해시 시드를 size_t
로 변환합니다.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.