SM3 해시 생성기

텍스트나 파일의 SM3 다이제스트를 브라우저 안에서 전부 계산합니다 — 중국 국가 암호 해시 표준 GB/T 32905-2016. 일반 SM3 또는 키가 있는 HMAC-SM3, hex/Base64 출력, 비교용 SHA-256 레인을 나란히 제공. 아무것도 업로드되지 않습니다.
알고리즘다이제스트
SM3–
SHA-256 (비교 레인, 텍스트 소스만)–
세부–
명령줄 교차 검증 — 이 페이지가 파일에 대해 인쇄하는 다이제스트는 openssl dgst -sm3 file.bin(OpenSSL 1.1.1+)와 gmssl dgst -sm3 file.bin과 바이트 단위로 일치합니다. HMAC-SM3는 텍스트 키로 openssl dgst -sm3 -hmac <키>.
자체 테스트
GB/T 32905-2016 공식 부록 A 벡터, GB/T 15852.2(ISO/IEC 9797-2) HMAC-SM3 벡터, 1000바이트 블록 증분 실행 1회, 예제 풀 2개, 브라우저 내장 인코더와 대조하는 Base64 경로, 그리고 역방향 경로(잘못된 hex 키는 반드시 거부되어야 함)로 이 페이지의 엔진을 다시 실행합니다. 어떤 곳으로도 데이터를 보내지 않습니다.
SM3란?
한 문장 요약: SM3는 중국 국가 표준 기구의 암호 해시입니다 — SHA-256과 같은 구조 계열의 256비트 Merkle–Damgård 해시이지만 고유한 초기값, 라운드 상수, 불리언 함수, 68워드 메시지 확장을 지니며 GM/T 0004-2012로 공표되고 이후 GB/T 32905-2016이 되었습니다.
한눈에 보는 SM3 vs SHA-256
항목SM3SHA-256
다이제스트 / 블록 / 워드 크기256 / 512 / 32비트256 / 512 / 32비트
압축 라운드6464
메시지 확장W[0..67] + 유도된 W'[0..63], P1 치환W[0..63]에 σ0/σ1 회전
라운드 상수두 상수 T0..15=0x79CC4519, T16..63=0x7A879D6A64개 상수 K[0..63]
불리언 함수16라운드에서 FF/GG 전환처음부터 끝까지 Ch/Maj
바이트 순서빅엔디언빅엔디언
공표2010년 (GM/T 0004-2012; GB/T 32905-2016)2001년 (FIPS 180-2)
국제 지위ISO/IEC 10118-3:2018에 포함FIPS 180-4

같은 뼈대, 다른 근육: 두 알고리즘 모두 메시지를 512비트 블록으로 자르고 여덟 개의 32비트 레지스터에 64라운드 혼합을 돌리지만 모든 상수, 모든 회전량, 메시지 확장 단계가 달라 같은 입력에 완전히 무관한 다이제스트를 냅니다. SM3("abc")는 66c7f0f4...8f4ba8e0, SHA-256("abc")는 ba7816bf...f20015ad입니다 — 샘플 버튼으로 둘 다 시도해 보세요.

"국가 표준"이 더 안전하다는 뜻인가?

아니요 — 그리고 그것은 SM3의 임무가 아닙니다. SM3는 SHA-256과 대등한 보안을 제공합니다. 256비트 다이제스트에 실용적인 충돌이나 원상 공격은 알려지지 않았습니다. SM3가 존재하는 이유는 제품군 독립성과 규제 준수입니다. 중국 상용암호 규정(상용암호, "SM")은 인증 부문 — 은행, 정부, 통신 인프라 — 에 국내 제품군을 요구해 전체 스택(해시, 서명, 암호)이 외국 표준이 아니라 하나의 국가 표준 절차로 통제되게 합니다. 그 문맥 밖에서 SHA-256과 SM3는 강도에서 상호 교환 가능하며, 상대방이나 규제기관 또는 프로토콜(예: RFC 8998 SM 암호 스위트를 쓰는 TLS 1.3)이 요구할 때 SM3를 고르세요.

SM 제품군에서 SM3의 위치
  • SM3 (이 페이지) — 해시. SM2 서명 내부의 다이제스트(ZA 값)이자 SM2 암호화의 KDF이기도 합니다.
  • SM4 — 128비트 블록 암호("국가표준판 AES"라고 생각) - 이 계열의 SM4 페이지에서 ECB/CBC.
  • SM2 — sm2p256v1 곡선 위의 타원곡선 서명 및 암호화 알고리즘, SM3 위에 구축.
  • SM9 — ID 기반 암호: 이메일 주소가 곧 공개 키입니다.
흔한 실수
  • SM3로 비밀번호 해싱. SM3는 SHA-256처럼 빠른 범용 해시입니다 — GPU에서 초당 수십억 번 추측. 비밀번호 저장에는 비밀번호 해시 생성기의 bcrypt, scrypt, Argon2id 또는 PBKDF2를 쓰세요.
  • 구형 C1C2C3 순서가 여기서 중요하다고 가정. 암호문 순서는 SM2의 주제입니다. SM3에는 그런 주름이 없으며 출력은 언제나 32바이트입니다.
  • GM/T 0004-2012와 GB/T 32905-2016 혼동. 같은 알고리즘, 같은 테스트 벡터입니다 — GM/T는 업계 표준 간행물, GB/T는 국가 표준. ISO/IEC 10118-3:2018도 싣고 있습니다.
  • 신뢰하되 검증하라. 이 페이지의 자체 테스트는 표준 자체의 부록 벡터를 재생합니다. "0 failed"라고 말하지 않으면 출력을 믿지 마세요.
FAQ

SM3를 OpenSSL에서 쓸 수 있나? 네 — OpenSSL 1.1.1 이상: openssl dgst -sm3 file, HMAC은 -hmac으로. GmSSL(중국 포크)은 더 오래부터 지원했습니다. 이 페이지는 둘 다 필요 없습니다. 알고리즘이 브라우저에서 돕니다.

HMAC-SM3는 무엇용인가? 메시지 인증입니다. 공유 키 보유자만 만들 수 있으므로 누가 보냈는지도 증명하는 다이제스트입니다. GB/T 15852.2 / ISO/IEC 9797-2로 표준화. 키는 어떤 길이든 되며 64바이트 초과 시 먼저 해시됩니다.

파일 레인에 SHA-256 비교가 없는 이유는? 비교는 브라우저 내장 WebCrypto 원샷 다이제스트를 쓰는데 전체 입력을 메모리에 올려야 합니다 — 텍스트는 괜찮지만 200MB 파일을 청크로 스트리밍하는 경우는 안 됩니다. SM3 자체는 증분 계산되어 여기엔 그런 제한이 없습니다.

다이제스트를 Base64로 받을 수 있나? 네 — 출력 형식 선택기에서. 모든 결과의 양쪽 레인은 복사하거나 작은 텍스트 보고서로 내려받을 수 있습니다.