Генератор хэша CRC-16

Ввод данных
Пример
Вывод хэша CRC-16

Руководство по генератору хэшей CRC-16

Назначение инструмента

Генератор хэшей CRC-16 - это бесплатный онлайн-инструмент, который генерирует контрольные суммы для любой введенной строки. Он предназначен для обеспечения простого и эффективного способа генерации контрольной суммы с использованием алгоритма CRC-16.

Преимущества и преимущества

Использование генератора хэшей CRC-16 имеет несколько преимуществ и преимуществ, таких как:

  • Он работает онлайн и бесплатно, без зависимостей от системы и программного обеспечения.
  • Есть возможность очистки, копирования и примера для удобства использования.
  • Сгенерированная контрольная сумма является безопасной и может быть вычислена только локально, обеспечивая безопасность данных.

Как использовать инструмент

  1. Посетите веб-страницу генератора хэшей CRC-16 в вашем браузере.
  2. В поле ввода введите строку, для которой вы хотите вычислить значение контрольной суммы.
  3. Нажмите кнопку "Сгенерировать", чтобы вычислить значение контрольной суммы.
  4. Рассчитанное значение контрольной суммы будет отображено в поле вывода.
  5. Вы можете скопировать это значение в буфер обмена или очистить поля ввода и вывода, нажав кнопку "Очистить".

Реализация на различных языках программирования

Вот примеры кода и описания того, как реализовать генератор хэшей CRC-16 на Python, Java, JavaScript, Golang, Ruby и PHP.

Python

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)

Познакомьтесь с нашими дополнительными инструментами