CRC-16 해시 생성기

데이터 입력
샘플
CRC-16 해시 출력

CRC-16 해시 생성기 매뉴얼

도구의 목적

CRC-16 해시 생성기는 주어진 입력 문자열에 대해 체크섬 값을 생성하는 무료 온라인 도구입니다. CRC-16 알고리즘을 사용하여 체크섬을 생성하는 간단하고 효율적인 방법을 제공하도록 설계되었습니다.

이점과 장점

CRC-16 해시 생성기를 사용하는 것은 다음과 같은 여러 가지 이점과 장점을 제공합니다:

  • 시스템 및 소프트웨어 종속성이 없는 온라인 무료 도구입니다.
  • 사용 편의를 위해 지우기, 복사하기 및 샘플 기능을 제공합니다.
  • 생성된 체크섬은 로컬에서만 계산되어 데이터 보안을 보장합니다.

도구 사용 방법

  1. 브라우저에서 CRC-16 해시 생성기 웹 페이지를 방문합니다.
  2. 제공된 입력 상자에 체크섬 값을 계산하려는 문자열을 입력합니다.
  3. 체크섬 값을 계산하려면 "생성" 버튼을 클릭합니다.
  4. 계산된 체크섬 값이 출력 상자에 표시됩니다.
  5. 이 값을 클립보드로 복사하거나 "지우기" 버튼을 클릭하여 입력 상자와 출력 상자를 지울 수 있습니다.

다양한 프로그래밍 언어에서의 구현

다음은 파이썬, 자바, 자바스크립트, 고랭, 루비 및 PHP에서 CRC-16 해시 생성기를 구현하는 방법에 대한 샘플 코드와 설명입니다.

파이썬

import binascii

def crc16(data: bytes) -> int:
    crc = 0xFFFF
    for i in range(len(data)):
        crc ^= data[i] << 8
        for j in range(8):
            if crc & 0x8000:
                crc = (crc << 1) ^ 0x1021
            else:
                crc <<= 1
    return crc & 0xFFFF

input_str = "Free Online Tools"
input_bytes = input_str.encode('utf-8')
checksum = crc16(input_bytes)
print(hex(checksum)[2:].zfill(4)) # 출력: "2dd2"

Java

import java.util.zip.CRC32;

public class CRC16HashGenerator {
    public static void main(String[] args) {
        String inputStr = "Free Online Tools";
        byte[] inputBytes = inputStr.getBytes();
        CRC32 crc32 = new CRC32();
        crc32.update(inputBytes);
        System.out.println(Long.toHexString(crc32.getValue() & 0xFFFF));
    }
}

JavaScript

function crc16(str) {
  let crc = 0xffff;
  for (let i = 0; i < str.length; i++) {
    crc ^= str.charCodeAt(i) << 8;
    for (let j = 0; j < 8; j++) {
      if (crc & 0x8000) {
        crc = (crc << 1) ^ 0x1021;
      } else {
        crc <<= 1;
      }
    }
  }
  return (crc & 0xffff).toString(16).padStart(4, "0");
}

let inputStr = "Free Online Tools";
let checksum = crc16(inputStr);
console.log(checksum); // 출력: "2dd2"

Golang

package main

import (
    "hash/crc32"
    "fmt"
)

func main() {
    inputStr := "Free Online Tools"
    inputBytes := []byte(inputStr)
    crcTable := crc32.MakeTable(0x1021)
    checksum := crc32.Update(0xFFFF, crcTable, inputBytes)
    fmt.Printf("%04x\n", checksum)
}

Ruby

def crc16(str)
  crc = 0xFFFF
  str.each_byte do |b|
    crc ^= b << 8
    for j in 0..7
      if (crc & 0x8000) != 0
        crc = ((crc << 1) ^ 0x1021)
      else
        crc = (crc << 1)
      end
    end
  end
  crc & 0xFFFF
end

input_str = "Free Online Tools"
checksum = crc16(input_str).to_s(16).rjust(4, '0')
puts checksum # 결과: "2dd2"

PHP

function crc16($str) {
  $crc = 0xFFFF;
  for ($i = 0; $i < strlen($str); $i++) {
    $crc ^= ord($str[$i]) << 8;
    for ($j = 0; $j < 8; $j++) {
      if ($crc & 0x8000) {
        $crc = (($crc << 1) ^ 0x1021);
      } else {
        $crc = $crc << 1;
      }
    }
  }
  return str_pad(dechex($crc & 0xFFFF), 4, "0", STR_PAD_LEFT);
}

$input_str = "Free Online Tools";
$checksum = crc16($input_str);
echo $checksum; // 출력 결과: "2dd2"

결론

CRC-16 해시 생성기는 단순하면서도 강력한 도구로, 입력 문자열의 체크섬 값을 생성하는 데 도움이 될 수 있습니다. 이 도구를 사용함으로써 데이터의 안전성을 보장하고, 계산된 체크섬 값이 로컬에서만 사용 가능하도록 할 수 있습니다. 제공된 샘플 구현 코드를 사용하여 이 도구를 프로젝트와 애플리케이션에 쉽게 통합할 수 있습니다.

자주 묻는 질문 (FAQ)

더 많은 도구 만나보기