Command Palette

Search for a command to run...

온라인 해시 생성기: 하나의 도구로 MD5, SHA-1, SHA-256 및 SHA-512

온라인 해시 생성기: 하나의 도구로 MD5, SHA-1, SHA-256 및 SHA-512

T
Toolz Team
|Jul 10, 2026|23 최소 읽기

보증 모음의 일부

내 WP Adminify 년의 최악의 지원 밤은 흰색 화면으로 시작되었습니다. We & # 39;d 는 오후 11 시경 업데이트 서버에 버전 3.1.2 를 밀었고,오전 2:40 까지 나는 같은 말을하는 14 장의 티켓을 가지고있었습니다: 업데이트가 설치되고 사이트가 죽었습니다. 나는 뒤로 굴러 내 기계의 zip 을 다시 테스트했습니다 - 완벽하게 작동했습니다. 같은 버전. 같은 파일. 아마도.

뻔한 일을 하기까지 부끄럽게도 오랜 시간이 걸렸습니다: 두 파일을 모두 해시합니다. The SHA-256 내 노트북의 zip 과 업데이트 서버 did't 에 앉아있는 zip 의 SHA-256 이 일치합니다. 닫지도 않고 - 완전히 다른 다이제스트. 업로드가 전송 중간에 어딘가에서 잘 렸고 서버는 깨진 아카이브를 행복하게 제공했으며 내부의 불완전한 파일에 PHP 가 막혔습니다. 하나의 체크섬 비교는 단일 사용자가 업데이트하기 전에 잡았을 것입니다. 그날 밤 이후 모든 WP Adminify 릴리스는 배포 로그에 SHA-256 을 인쇄했으며 원격 해시가 로컬 해시와 일치하지 않는 한 업로드 스크립트가 게시를 거부했습니다. 이후 손상된 릴리스는 0 개입니다.

That's 해싱은 무엇,가장 실용적인: 데이터에 대 한 지문. 파일 또는 문자열에 피드,짧은 고정 길이 다이제스트를 다시 얻을. 심지어 하나의 바이트 변경 하는 경우-뒤집힌 비트,잘린된 다운로드,교활한 편집-다이제스트는 완전히 변경 됩니다. 나는 지금 해시 생성기에 대 한 도달 온라인 여러 번 일주일에: 다운로드 확인,웹 훅 서명 디버깅,환경에 걸쳐 구성 파일을 비교,정숙성-그 두 "identical" 파일은 실제로.

그래서 하나를 만들었습니다 Toolz.dev. 나는 브라우저에서 모든 것을 계산하고,나란히 MD5,SHA-1,SHA-256,SHA-512 를 보여주고,어디서나 내 입력의 바이트를 업로드하지 않는 해시 도구를 원했습니다. 이 가이드는 사용 방법,후드 아래에서 실제로 일어나는 what's,그리고 내가 초기에 스스로 만든 해싱의 한 가지 실수를 다루고 있습니다 - 그리고 오늘날에도 여전히 코드베이스에서 볼 수 있습니다.

TL;DR: 를 이용하세요 Toolz.dev 해시 생성기 텍스트 또는 파일에서 MD5,SHA-1,SHA-256,SHA-512 다이제스트를 계산하려면 Web Crypto API 를 통해 브라우저에서 즉시 그리고 완전히. 중요한 모든 것에 대해 SHA-256 으로 기본값; MD5 및 SHA-1 을 레거시 체크섬으로만 취급합니다. 그리고 절대로 - 절대로 - 암호에 대해 이들 중 어느 것도 사용하지 마십시오. That's bcrypt 또는 Argon2 영역.

주요 특징

한 번에 여러 알고리즘

입력한 내용을 한 번 붙여넣고 MD5,SHA-1,SHA-256,SHA-512 를 동시에 계산해 보세요. 이것은 작은 편의처럼 들립니다. you're debugging someone else's system and you don't know which algorithm used. I've lost real time to this - a payment gateway's docs said "SHA hash" 번호가 붙지 않은 상태에서,저는 거기에 앉아 한 알고리즘이 일치할 때까지 터미널에서 한 번에 하나의 알고리즘을 다이제스트 생성했습니다. 한 번에 화면에 4 개의 다이제스트가 모두 표시되면,당신은 단지 어느 것이 you're trying to match 값과 정렬되는지 안구만 만듭니다. 또한 차이를 본능적으로 만듭니다: 128 자 SHA-512 옆에 있는 32 자 MD5 를 볼 수 있고 "digest size"가 무엇인지 즉시 이해할 수 있습니다. 실제로 의미합니다.

텍스트 및 파일 해싱

문자열을 입력하거나 붙여넣거나 파일을 드롭합니다. 이 도구는 두 가지를 모두 처리합니다. 텍스트 해싱은 일상적인 경우를 다룹니다: API 서명 디버깅,캐시 키,빠른 비교. 파일 해싱은 실제 확인 작업이 발생하는 곳입니다. 게시된 체크섬에 대해 다운로드한 설치 프로그램을 확인하고,플러그인 zip 이 업데이트 서버로의 이동에서 살아남았는지 확인하고,머신 간에 그대로 복사된 데이터베이스 덤프를 확인합니다. 파일은 결코 아무데도 업로드되지 않습니다; it's 브라우저에서 로컬로 읽고 제자리에 해시됩니다. I've hashed multi-hundred-megabyte SQL 덤프는 이런 식으로 발생합니다. It's faster than you'd expect,because the heavy lifting happens in native browser code,not JavaScript loops.

웹 암호화를 통한 즉각적인 클라이언트 측 계산

SHA 제품군 다이제스트는 browser's 내장 Web Crypto API - 로 계산됩니다 crypto.subtle.digest- 브라우저와 함께 제공되는 기본적이고 최적화 된 암호화 코드를 실행합니다. 서버 왕복,대기열, 스피너가 없습니다. 머신이 입력을 읽을 수있는만큼 빨리 결과를 얻을 수 있습니다. 이것은 두 가지 이유로 중요합니다. 첫째,속도: 해싱은 큰 입력의 경우에도 밀리 초 단위로 발생합니다. 둘째,신뢰: 계산이 로컬이기 때문에 도구는 커피 숍에서 온라인으로 또는 잠긴 네트워크에서 민감한 구성을 해싱하든간에 동일하게 작동합니다. 페이지는 한 번로드됩니다; 그 후 네트워크는 관련이 없습니다.

대문자 및 소문자 출력

사소한 기능, 실제 두통을 저장합니다. 육각형 소화물은 의미에 대소문자를 구분하지 않습니다 - 2CF24DBA 그리고 2cf24dba 동일한 바이트를 인코딩하십시오 - 그러나 문자열 비교 don't 는 그것을 알고 있습니다. 많은 시스템이 다이제스트를 대문자로 저장하거나 게시하는 반면 (일부 Windows 툴링,특정 공급 업체 체크섬 페이지), 대부분의 Unix 도구는 소문자를 방출합니다. you're 비교 스크립트에 다이제스트를 붙여 넣거나 정확한 문자열 일치를 수행하는 구성 파일을 붙여 넣으면 대소문자가 갑자기 많이 중요합니다. 토글은 대소문자 변환기를 통해 출력을 실행하는 대신 필요한 형식을 복사하거나 더 나쁘게는 "fixing" 손으로 문자를 팻 핑거링하는 대신 필요한 형식을 복사한다는 것을 의미합니다.

모드 비교 및 확인

해싱은 작업의 절반에 불과합니다 - 보통 예상 값에 대해 다이제스트를 확인합니다. 게시 된 체크섬을 계산 된 것 옆에 붙여 넣으면 도구가 일치하는지 즉시 알려 주며 64 개의 육각 문자를 곁눈질하지 않아도됩니다. 나는 처음과 마지막 몇 문자를 시각적으로 비교하여 체크섬을 확인하는 데 사용했습니다. That & # 39;s 정확히 중간에 불일치를 놓치는 방법. 인간의 눈은 긴 무작위 문자열을 비교하는 데 끔찍합니다; that & # 39;s 평등 확인을위한 작업. 확인 모드는 또한 비교하기 전에 대소문자를 정규화하고 공백을 트리밍하여 가장 일반적인 잘못된 경보를 죽입니다: 엉성한 복사 붙여 넣기에서 길 잃은 후행 공간.

100% 비공개 - 브라우저에서 아무것도 남지 않습니다

이것은 내가 Toolz.dev 의 모든에 걸쳐 타협을 거부 기능입니다. 입력 - 텍스트 또는 파일 - 로컬로 해시되고 전송되지 않습니다. There's 서버 측 처리 없음,로깅 없음,아니 "we anonymize your data"fine print,왜냐하면 there's 기록 할 데이터가 없기 때문입니다. 이것은 사람들이 깨닫는 것보다 해싱에 더 중요합니다: 개발자 해시가 종종 정확히해야하는 것들 't 임의의 웹 사이트에 붙여 넣기 - HMAC 서명,라이센스 키,고객 이메일로 덤프를 디버깅하는 동안 API 비밀. 클라이언트 측 도구를 사용하면 위험이 증발합니다. 증명을 원한다면 해싱하는 동안 브라우저 's 네트워크 탭을 엽니 다. 나는이 아키텍처가 내 중요한 이유에 대해 더 썼습니다 데이터 개인 정보 보호 및 온라인 도구 포스트.

해시 생성기를 사용하는 방법

1단계: 도구를 열고 입력을 선택합니다

로 향하다 해시 생성기. You'll 는 입력한/붙여넣은 원본 또는 파일을 받아들이는 입력 지역을 봅니다. 원본은,다만 입력하는 것을 시작하십시오 - 당신이 가는 때 해싱은 일어납니다. 파일을 위해,하나는 하락 지역에 끌거나 파일 선택기를 올려주기하지 않습니다; 파일은 당신의 브라우저에 의해 국부적으로 읽힙니다. There's 당신의 machine's 기억이 안락한 무슨 저쪽에 크기 천장이 없습니다.

2단계: 다이제스트를 읽어보세요

모든 알고리즘은 한 번에 계산합니다: MD5,SHA-1,SHA-256,SHA-512. 각 다이제스트는 16 진수로 레이블이 지정된 자체 행에 나타납니다. 길이에 유의하십시오 - MD5 의 경우 32 자,SHA-1 의 경우 40 자,SHA-256 의 경우 64 자,SHA-512 의 경우 128 자. you're 가 알려진 체크섬과 일치하고 you'어떤 알고리즘이 생성했는지 확실하지 않은 경우 일반적으로 길이만으로도 단일 문자를 비교하기 전에 알려줍니다.

3단계: 필요한 경우 케이스를 전환합니다

만약에 체계 you're 일치가 대문자 16 진수를 사용하는 경우에,경우 토글을 뒤집으십시오. 다이제스트 바이트는 어느 쪽이든 동일하 - 이것은 순전히 끈 체재에 관하여 입니다. 손으로 선정하기 보다는 오히려 복사 단추를 가진 다이제스트를 베끼십시오; 128 자 SHA-512 다이제스트는 부분적으로 선정하게 아주 쉽,잘린 다이제스트는 당신이 그것으로 만드는 각 비교를 묵묵히 실패할 것입니다.

4단계: 예상되는 해시를 확인하세요

Vendor's 다운로드 페이지 또는 동료's 배포 로그에서 게시된 체크섬을 얻었다? 비교 필드에 붙여 넣습니다. 도구는 계산된 다이제스트에 대해 이를 검사하고 명확한 일치 또는 불일치를 제공합니다. 일치는 데이터가 원래 해시를 생성한 것과 바이트 대 바이트 동일하다는 것을 의미합니다. 불일치는 변경된 것을 의미합니다 - 손상된 전송,잘못된 파일 버전 또는 변조. Don't 불일치를 합리화합니다. 다시 다운로드하고 다시 확인합니다.

MD5 대 SHA-256: What's 실제로 후드 아래에서 일어나는 일

암호화 해시 함수는 어떤 길이의 입력도 취하고 다이제스트라고 하는 고정 길이의 출력을 생성합니다. 네 가지 속성이 유용하게 만듭니다. It's 결정론적인- 같은 입력은 항상 같은 다이제스트를 산출합니다. 그것은 을 전시합니다 눈사태 효과- 입력의 1 개 비트를 바꾸고 산출 조금의 대략 반은 뒤집습니다. It's 일방적인- there's 다이제스트에서 다시 입력으로 실행 가능한 경로가 없습니다. 그리고 it's 충돌 방지- 동일한 다이제스트를 생성하는 두 개의 서로 다른 입력을 찾는 것은 계산상 불가능합니다.

눈사태 효과는 실제 값으로 볼 가치가 있습니다. MD5 의 hello 이다 5d41402abc4b2a76b9719d911017c592. 한 글자를 대문자로 - Hello- 그리고 당신은 얻습니다 8b1a9953c4611296a827abf8c47804d7. 한 캐릭터도 이동하지 않았습니다; 전혀 관련이 없는 다이제스트. SHA-256 과 같은 이야기: hello 해시합니다 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824, 동안 Hello 본질적으로 아무것도 공유하지 않는 다이제스트를 생성합니다. That's the point. 다이제스트가 알려줍니다 여부 데이터가 변경되지 않았습니다 얼마나.

자, 알고리즘들은. MD5 1992 년에 RFC 1321 에서 다시 정의되고 128 비트 다이제스트를 생성합니다. It's 빠른,it's 사방 - 그리고 it's 암호로 깨진. 실용적인 충돌 공격은 2004 년부터 존재했다; 연구원은 필수 하드웨어에 동일한 MD5 다이제스트와 두 개의 서로 다른 입력을 제조 할 수 있습니다. 그것은 무엇이든 적대적인 그것을 죽인다: 서명,인증서, 공격자가 콘텐츠를 대체 할 수있는 무결성 검사. 그것은 비 적대적인 체크섬에 대한 괜찮 남아 - 파일 전송에서 우발적 인 손상을 감지,자신의 데이터를 중복 제거 - 무작위 손상 doesn't 는 그 바이트를 선택 얻을 때문에. 샤-1 (160 비트) 는 더 오래 지속되었지만 SHAtered 공격은 2017 년에 실제 충돌을 보여 주었으며 하나의 SHA-1 다이제스트를 공유하는 두 개의 다른 PDF로 완성되었습니다. Git은 여전히 역사적인 이유로 내부적으로 SHA-1을 사용하지만 새로운 시스템은 사용해서는 안됩니다.

X-1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X SHA-2 가족- 그 중 SHA-256 및 SHA-512 - FIPS 180-4 에 지정되어 있으며 깨지지 않습니다. SHA-256 은 256 비트 다이제스트를 제공하며 거의 모든 것에 대한 정상적인 기본값입니다. SHA-512 는 더 큰 다이제스트를 제공하며 종종 더 빠르게 64비트 CPU에서는 64비트 단어로 작동하므로.

세 가지 구별 사람들은 끊임없이 흐려집니다. 해싱 일방통행입니다. 열쇠도 없고 돌아갈 길도 없습니다. 암호화 는 양방향입니다 - 키를 가진 사람은 누구나 해독 할 수 있습니다. 부호화base64 같이, 영 방법 보호입니다 - it's 다만 대표 변화는 누구든 반전할 수 있습니다, 필요 열쇠가 없습니다. 당신이 'base64 로 대우된 "encryption, "를 이제까지 본 경우에 나의 Base64 변환기 why that's 가 문제인지를 유쾌하게 보여줄 것,그리고 나의 Base64 인코딩 가이드 구별을 깊이 있게 다룹니다.

메시지를 증명해야 할 때 공유 비밀을 보유한 사람으로부터 온 - 웹훅 서명,API 요청 서명 - 일반 해시 isn't enough,왜냐하면 누구나 해시를 할 수 있기 때문입니다. That's HMACRFC 2104 에서 정의되는: 해시 함수를 감싸서 키 홀더만 유효한 다이제스트를 생성할 수 있는 키 구성. HMAC-SHA256 는 대부분의 웹훅 서명 체계 뒤에 주력입니다 you'll 적 디버그.

그리고 큰 것: 빠른 해시로 비밀번호를 해시하지 마세요. 여기서 빠른 것이 적이다 - 유출된 데이터베이스를 가진 공격자는 GPU 에서 초당 수십억 개의 MD5 또는 SHA-256 추측을 테스트할 수 있다. 암호는 의도적으로 느리고 염장된 알고리즘이 필요하다: bcrypt 또는 Argon2. Laravel's Hash::make() 정확하게 이런 이유로 bcrypt 를 기본적으로 사용하고,워드프레스는 현대화 하기 전에 phpass 휴대용 해싱 체계에 수년을 보냈습니다 - 불완전하지만,본능 (느리게,소금) 이 옳았습니다. 나는 이것을 어려운 방법으로 배웠습니다: WP 가 관리되기 몇 년 전에 나의 초기 프리랜서 프로젝트는 원시로 암호를 저장했습니다 md5($password). 클래식 신인 이동. 아무도 위반하지 않았지만 나는 여전히 움츠러 든다.

Here's Toolz.dev 도구가 후드 아래에서 수행하는 작업 및 you'd 가 직접 작성하는 작업:

const data = new TextEncoder().encode('hello');
const buf = await crypto.subtle.digest('SHA-256', data);
const hex = [...new Uint8Array(buf)]
  .map(b => b.toString(16).padStart(2, '0'))
  .join('');
// "2cf24dba5fb0a30e26e83b2ac5b9e29e..."

또는 PHP에서 한 줄: hash('sha256', 'hello'). 같은 입력,같은 다이제스트,어떤 언어,어떤 기계. 그 결정론이 전체 토대입니다.

일반적인 사용 사례

파일 다운로드 및 릴리스 아티팩트 확인

소개에서 나를 태운 사용 사례. 공급업체는 다운로드 옆에 체크섬을 게시하는 데에는 이유가 있습니다: 전송이 손상되고, 미러가 오래되고, 때때로 악의적인 사람이 파일을 교환합니다. 파일을 다운로드하고, 파일을 해시하세요 해시 생성기는,공개한 가치에 비교합니다. 일치: 파일은 발행인이 해시한 무슨과 바이트 동일하. 불일치: 정지하고 다시 다운로드. 나의 자신의 방출을 위해,그 2:40 a.m. 사건부터 규칙은 기계적입니다 - 배치 대본은 SHA-256 를 현지에서 산출하고,올리고, 먼 file's 해시를 가져오고,"current version" 포인터를 뒤집는 것을 사절합니다. they're 동등하지 않는 한. It's 어쩌면 8 개의 강타 선. 그것은 2 개의 잘린 올려주기를 그 후 붙잡았습니다,둘 다 표 홍수일 것입니다. 나의 전체 파이프라인에 있는 가장 싼 보험.

캐시 버스팅 및 ETags

브라우저는 공격적으로 캐시하고, "please hard-refresh"는 배포 전략이 아닙니다. 견고한 수정은 content-hashed 파일 이름입니다: hash the file's contents 그리고 이름에 다이제스트의 덩어리를 포함시킵니다 app.css 된다 app.2cf24dba.css. 내용 변경,해시 변경,파일 이름 변경,캐시 누락,사용자가 새 파일을 가져옵니다. 내용 동일,파일 이름 동일,캐시 히트. Laravel Mix 와 Vite 가 자동으로이 작업을 수행; WP Adminify 에서 나는 자체 개발 버전을 수행하여 자산 내용을 해싱하여 구축했습니다 ver 쿼리 문자열 워드 프레스는 enqueued 스크립트에 추가 - 하나 너무 많은 " 설정 패널이 broken&quot 보인다; 정말 오래된 CSS 했다 티켓. 동일한 원리는 ETags 전원: 서버는 응답을 해시,브라우저는 다시 해시를 전송하고,일치는 전체 페이로드 대신 작은 304 를 의미합니다.

콘텐츠 중복 제거

두 파일이 바이트별로 비교하지 않고 동일한지 알고 싶으십니까 - 아니면 다른 기계에 살 때? 둘 다 해시하십시오. 동일한 다이제스트는 동일한 콘텐츠를 의미합니다 (SHA-256 을 사용하면 충돌 확률이 너무 터무니없이 작습니다 they're not worth a thought). 이 스케일은 아름답게 확장됩니다: 천 개의 업로드를 해시하고 다이제스트를 정렬하고 중복은 즉시 클러스터됩니다. I 've 는 이것을 사용하여 수년간 축적 된 WordPress 미디어 라이브러리를 추론했습니다 logo.png, logo-1.png, 그리고 logo-final-2.png- 해싱은 실제로 다른 이름을 입고 있는 동일한 이미지가 무엇인지 공개했습니다. It's 또한 백업 도구가 건너뛸 항목을 결정하는 방법과 개체 저장소가 "upload"를 감지하는 방법 이미 보유하고 있는 콘텐츠입니다.

Git 스타일 콘텐츠 주소 지정

Git doesn't 는 파일을 이름으로 저장합니다 - 해시로 저장합니다. 모든 blob,tree, commit 은 그 내용의 다이제스트에 의해 어드레스됩니다 (SHA-1 은 역사적으로 SHA-256 전환이 진행중입니다). That's why commit IDs look like hashes: they 이다 해시,그리고 그들은 스냅샷,부모, 저자,타임스탬프를 다룹니다. 역사의 어느 곳에서나 무엇이든 변경하고 모든 다운스트림 해시가 변경됩니다. 이것이 Git 역사를 조용히 가능하기보다는 크게 명백하게 변조하는 방법입니다. 이것을 이해하면 Git 문제를 디버깅하는 방법이 변형되었습니다. 두 대의 시스템이 커밋에 대해 동의하지 않을 때 해시를 비교하면 you're 가 동일한 객체를 보는지 또는 발산된 역사를 보는지 즉시 알 수 있습니다. 콘텐츠 주소 지정은 repo 를 저장할 때까지 학문적으로 들리는 아이디어 중 하나입니다.

비밀을 노출하지 않고 구성을 비교합니다

연출작품, 제작 doesn't, 그리고 당신은 의심합니다 .env 파일은 다릅니다 - 그러나 당신은 don't 는 생산 비밀을 Slack 실 또는 스크린 공유로 풀칠하고 싶습니다. 그것의 자신의 기계에 각 파일을 해시하고 대신 다이제스트를 비교하십시오. 다른 해시는 단일 값을 밝히지 않고 파일이 다르다는 것을 확인합니다. 당신은 더 정밀하게 갈 수 있습니다: 해시 개별 라인 또는 특정 키를 정확히 찾아냅니다 어느 항목은 분기. I & #39;ve 호스팅 지원과의 불일치를 해결이 방법 - & quot;구성 doesn & #39;t 내 일치의 복사본, here & #39;s 내 SHA-256, 확인 yours" 하나의 메시지에서 논쟁을 종료. 비밀이 정확히 그들이 속한 곳에 머무르는 동안 다이제스트는 차이 또는 동일성을 증명합니다.

웹훅 서명 디버깅

Stripe,GitHub, Paddle - 그들은 모두 웹훅 페이로드를 서명하는데,보통 HMAC-SHA256 으로,따라서 실제로 그들로부터 온 요청을 검증할 수 있다. 그리고 검증이 실패하면 디버깅은 비참하다,왜냐하면 실패는 침묵하기 때문이다: signatures just don't match,andmiddleware says no. 10 번 중 9 번은 범인이 페이로드이다 - 당신의 프레임워크는 JSON 을 재직렬화하여 공백이나 키 순서를 변경하여,you're 는 서명된 것과 다른 바이트를 해싱한다. 파이프라인의 다양한 지점에 있는 요청 본문은 바이트가 변이되는 위치를 정확히 보여줍니다. 경로 처리기와 확인 기능 간에 다이제스트가 변경되면 you've 는 본문에 닿는 계층 that'를 찾았습니다. While you're in that neighborhood,my JWT 디코더 서명된 토큰을 검사하는 인접 작업에 편리합니다.

MD5 vs SHA-1 vs SHA-256 vs SHA-512: 어떤 것을 사용해야 합니까?

알고리즘 다이제스트 크기 상대 속도 보안 상태 적절한 용도
MD5 128비트(32헥스 문자) 가장 빠른 파손 - 2004년 이후 실제 충돌 비적대적 체크섬, 레거시 시스템 호환성, 캐시 키
샤-1 160비트(6진수 문자 40개) 빠른 부서짐 - 부서진 충돌, 2017 레거시 Git 내부, 기존 시스템과의 인터럽트; 새로운 것은 없습니다
SHA-256 256비트(64헥스 문자) 빠른 안전한 무결성 검사, 서명, 콘텐츠 주소 지정, HMAC에 대한 기본값입니다
SHA-512 512비트(128헥스 문자) 빠름 (64 비트 CPU 에서 종종 더 빠름) 안전한 SHA-256과 동일; 추가 마진이나 64비트 처리량을 원할 때

내 입장, 그리고 I & # 39;에 대해 무뚝뚝하게 말할 것입니다: SHA-256 에 기본값으로 두고 그것에 대해 생각 중지. It's 는 안전하고,보편적으로 지원되며,비용을 결코 알아차리지 못할 만큼 빠르며,it's 는 당신의 도구가 이미 말하고 있는 것 - TLS 인증서,Docker 이미지 다이제스트,패키지 잠금파일,웹훅 서명 알고리즘을 선택하는 데 소비되는 정신 에너지는 거의 항상 다른 곳에서 더 잘 소비됩니다.

유지할 가치가 있는 뉘앙스: MD5 isn't 방사성, it's 범위가 정해져 있습니다. 자신의 파일에 우발적 인 손상을 감지? 괜찮은. 인간의 적이 충돌을 위조 혜택을 누릴 수있는 모든? 절대 안돼. SHA-1 은 변명 적은 동일한 버킷에 앉아 - 만질 수있는 유일한 좋은 이유는 당신이 don't 제어 시스템과의 호환성입니다. SHA-512 는 훌륭한 선택이며 때로는 최신 64 비트 하드웨어에서 더 빠르지만 128 자 다이제스트는 로그 및 URL 에서 다루기 힘들며 SHA-256 의 보안 마진은 이미 현실적인 공격을 넘어서는 것입니다. 그리고 네 가지 중 어느 것도 - 반복,아무것도 - 암호 필드 근처에 속하지 않습니다.

자주 묻는 질문

MD5 는 여전히 안전하게 사용할 수 있나요?

보안을 위해,아니오. 실용적인 충돌 공격은 2004 년부터 존재해 왔으며,이는 공격자가 동일한 MD5 다이제스트를 가진 두 개의 다른 파일을 제작할 수 있음을 의미합니다. 서명,인증서, 암호 저장 또는 변조가 우려되는 무결성 검사에 절대 사용하지 마십시오. 우발적 인 손상 감지,자신의 파일 중복 제거,캐시 키 생성 - 아무도 당신을 속이려고하지 않는 비 적대적 작업에 대해서는 여전히 허용됩니다. 의심스러운 경우 SHA-256; 비용이 들지 않습니다.

해시를 반전시켜 원본 데이터를 얻을 수 있습니까?

아니요. 해시 함수는 설계상 단방향입니다. 다이제스트에는 대부분의 입력보다 훨씬 적은 정보가 포함되어 있으므로 일반적으로 반전이 수학적으로 불가능합니다. 공격자가 실제로 하는 일은 추측입니다: 수십억 개의 후보 입력을 해시하고 다이제스트를 비교하는 것,무지개 테이블이나 GPU 무차별 대입을 사용하는 것,빠른 알고리즘으로 해시된 비밀번호와 같은 짧고 일반적인 입력에 대해 무섭도록 잘 작동합니다. 이것이 바로 비밀번호에 일반 MD5 또는 SHA-256 대신 느리고 염장된 해싱이 필요한 이유입니다.

해싱과 암호화의 차이점은 무엇입니까?

암호화는 양방향이다: 데이터는 키로 스크램블되고,오른쪽 키를 보유한 사람은 원본으로 다시 해독 할 수 있습니다. 해싱은 단방향이다: 데이터에서 다이제스트를 계산할 수 있지만 다이제스트에서 데이터를 복구 할 수 없습니다 - 키와 암호 해독을 확인하거나 비교하기 만하면 될 때 해싱 데이터를 다시 필요로 할 때 암호화를 사용합니다. Base64, 기록에 대한,어느 쪽도 아니다 - 그것은 인코딩입니다,누구에 의해 되돌릴 수 있습니다.

비밀번호는 어떤 해시를 사용해야 하나요?

이 도구에 있는 것들은 하나도 없습니다. MD5,SHA-1,SHA-256,SHA-512 는 모두 빠르고,빠른 것은 암호에 치명적입니다 - GPU 는 유출된 데이터베이스에 대해 초당 수십억 개의 추측을 테스트할 수 있습니다. 의도적으로 느리고 소금에 절인 알고리즘을 사용합니다: bcrypt 또는 Argon2. Laravel's Hash::make() 는 기본적으로 bcrypt 를 사용하며,대부분의 최신 프레임워크는 이에 상응하는 암호 저장에 대한 원시 해시 호출을 작성하는 경우 대신 framework's 암호 해싱 API 에 대해 중지하고 도달합니다.

온라인 도구에서 민감한 데이터를 해시하는 것이 안전합니까?

도구가 진정으로 클라이언트 측 인 경우에만. Toolz.dev 해시 생성기는 웹 암호화 API 를 사용하여 브라우저의 모든 다이제스트를 계산합니다 - 입력은 어떤 서버에서도 전송,로그 또는 저장되지 않습니다. 해시하는 동안 네트워크 탭을보고 직접 확인할 수 있습니다. 서버 측 도구를 사용하면 붙여 넣기 할 때 무엇이든 알 수없는 운영자를 신뢰하므로 API 비밀,키 또는 고객 데이터에 대한 나쁜 거래입니다. 의심 스러울 때 붙여 넣기 전에 확인하십시오.

왜 "hello" 그리고 "Hello" 완전히 다른 해시를 생성합니까?

그것이 눈사태 효과이며,그것은 고의적입니다. 좋은 해시 함수는 하나의 입력 비트라도 변경될 때 출력 비트의 대략 절반을 뒤집기 때문에 유사한 입력은 격렬하게 다른 다이제스트를 생성합니다. 한 글자를 대문자로 사용하면 단일 바이트가 변경되지만 다이제스트는 인식할 수 없게 되는 특징입니다: 다이제스트는 두 입력이 얼마나 유사한지에 대해 아무것도 나타내지 않으며 해시를 비교할 때 아무리 작더라도 놓칠 수 없도록 만드는 것을 의미합니다.

SHA-256과 SHA-512의 차이점은 무엇입니까?

둘 다 FIPS 180-4 에 명시된 SHA-2 제품군에 속하며 둘 다 안전한 것으로 간주됩니다. SHA-256 은 32 비트 작업을 사용하여 256 비트 다이제스트를 생성하며; SHA-512 는 64 비트 작업을 사용하여 512 비트 다이제스트를 생성하므로 종종 최신 64 비트 프로세서에서 더 빠릅니다. 실제로 SHA-256 은 생태계 기본값이며 다이제스트는 길이의 절반이므로 로그 및 URL 을 관리 할 수 있습니다. 추가 보안 마진 또는 64 비트 처리량을 위해 SHA-512 를 선택하십시오; 그렇지 않으면 SHA-256 은 충분합니다.

일반 해시 대신 HMAC가 필요한 경우는 언제입니까?

해시된 것뿐만 아니라 누가 해시를 생성했는지 증명해야 할 때마다 HMAC 를 사용하십시오. 일반 다이제스트는 누구나 계산할 수 있으므로 무결성은 확인하지만 출처는 확인하지 않습니다. RFC 2104 에 정의된 HMAC 는 비밀 키를 해싱 프로세스에 혼합합니다. 키를 보유한 당사자만이 유효한 서명을 생성하거나 확인할 수 있습니다. 이는 Stripe,GitHub 및 유사한 서비스의 웹훅 서명 뒤에 있는 메커니즘으로 거의 항상 원시 요청 본문을 통해 HMAC-SHA256 으로 사용됩니다.

믿음이 아닌 지문으로 배송하세요

해싱은 희귀 한 도구입니다 that's 모두 깊은 컴퓨터 과학 및 죽은-간단한 일일 연습. 당신은 don't 이해 해야 Merkle–Damgård 구성에서 혜택을-당신은 습관이 필요 합니다. 릴리스 아티팩트를 해시 다운로드 확인. 눈알 파일 대신 다이제스트를 비교 합니다. 그 습관의 모든 하나는 작업의 삼십 초,각각, 어떤 시점에서,나에 게 저장 한 밤 나는 그렇지 않으면 지원 대기열에서 사과를 보냈다 것 이다.

X-1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X Toolz.dev 해시 생성기 는 그 습관을 마찰없이 만들기 위해 내장되어 있습니다: 한 번에 네 가지 알고리즘, 텍스트 및 파일, 확인 모드, 업로드 된 아무것도 귀하의 브라우저에서 모두 계산. if you're working through the neighboring concepts, the Base64 변환기 인코딩을 다룹니다(그리고 왜 isn't 보안인지) 비밀번호 생성기 SHA-256으로 해싱해서는 안 되는 비밀을 처리합니다 JWT 디코더 사인된 토큰 측면을 마무리합니다.

더 큰 그림을 위해, 나의 코딩 도구 가이드 개발자 도구 상자의 나머지 부분을 살펴봅니다 온라인 도구의 데이터 개인 정보 보호 클라이언트 측 처리가 언덕 I & #39;ve 에 죽기로 선택한 이유를 설명합니다. 먼저 해시,두 번째로 배포하십시오. 오전 2:40 자아가 당신에게 감사 할 것입니다.

Frequently Asked Questions

For security, no. Practical collision attacks have existed since 2004, meaning attackers can craft two different files with the same MD5 digest. Never use it for signatures, certificates, password storage, or any integrity check where tampering is a concern. It remains acceptable for non-adversarial jobs — detecting accidental corruption, deduplicating your own files, generating cache keys — where nobody is trying to fool you. If in doubt, use SHA-256; it costs you nothing.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!