Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$hexHash (집계 표현식)

버전 8.3에 추가 되었습니다.

$hexHash

UTF- 문자열8 또는 바이너리 데이터()에서 해시 값의 대문자 16진수 문자열 표현을 생성하고BinData 반환합니다. 16진수 문자열 대신 이진 데이터를 가져오려면 을 사용합니다.$hash

$hexHash 의 구문은 다음과 같습니다:

{
$hexHash: {
input: <expression>,
algorithm: <string>
}
}
필드
유형
설명

input

필수입니다. 해시할 값입니다. 유효한 UTF-8 문자열 또는 BinData 로 해석되어야 합니다.

algorithm

문자열

필수입니다. 해싱 알고리즘. 허용되는 값:

  • "md5"

  • "sha256"

  • "xxh64"

$hexHash 대문자 16진수 문자열을 반환합니다. 출력 길이는 알고리즘 에 따라 달라집니다.

알고리즘
출력 길이(문자)

"md5"

32

"sha256"

64

"xxh64"

16

inputnull 로 해석되거나 정의되지 않았거나 누락된 필드 참조하는 경우 $hexHashnull을 반환합니다.

input UTF-8 문자열 또는 이외의 유형으로 BinData 해석되는 경우$hexHash 는 오류를 반환합니다.

algorithm 이(가) 허용되는 값 중 하나가 아닌 경우 $hexHash 은(는) 오류를 반환합니다.

중요

MD5 는 암호학적으로 안전한 알고리즘 아니며 보안에 민감한 애플리케이션에 적합하지 않습니다. 민감한 데이터를 해싱하는 경우 "sha256" 를 대신 사용합니다.

MD5 도 FIPS 모드 에서 비활성화됩니다. FIPS 모드 활성화된 상태에서 배포서버 실행되는 경우 "sha256" 또는 "xxh64" 를 대신 사용합니다.

다음 예제에서는 이 문서 에 files 이라는 이름의 컬렉션 사용합니다.

db.files.insertMany( [
{ _id: 1, filename: "report.pdf" }
] )

다음 예시 filename 필드 의 SHA-256 16진수 해시를 계산합니다.

db.files.aggregate( [
{
$project: {
filename: 1,
hexHash: {
$hexHash: {
input: "$filename",
algorithm: "sha256"
}
}
}
}
] )
[
{
_id: 1,
filename: 'report.pdf',
hexHash: '6466E450A16B77B865C5829D6B6C56D9F892956475642DBEB9CCC4340FE01B15'
}
]

hexHash 필드 에는 SHA-256 해시가 64자의 대문자 16진수 문자열로 포함되어 있습니다. 다른 알고리즘 사용하려면 algorithm 값을 변경합니다. 예시 를 들어 "xxh64" 는 16개의 문자열을 생성합니다.

inputnull이거나 input 가 누락된 필드 참조하는 경우 $hexHashnull를 반환합니다.

db.aggregate( [
{
$documents: [
{ val: null },
{}
]
},
{
$project: {
hexHash: {
$hexHash: {
input: "$val",
algorithm: "sha256"
}
}
}
}
] )
[
{
hexHash: null
},
{
hexHash: null
}
]

돌아가기

$hash

이 페이지의 내용