CRC-16 哈希生成器

数据输入
示例
CRC-16 哈希输出

CRC-16 哈希生成器手册

工具目的

CRC-16 哈希生成器是一个免费在线工具,用于为任何给定的输入字符串生成校验和值。它旨在提供一种使用 CRC-16 算法生成校验和的简单高效的方法。

好处和优势

使用 CRC-16 哈希生成器有以下几个好处和优势:

  • 在线免费,无需系统和软件依赖。
  • 可以清除、复制和具有示例,使用方便。
  • 生成的校验和是安全的,只能在本地计算,确保数据安全。

如何使用该工具

  1. 在浏览器中访问 CRC-16 哈希生成器网页。
  2. 在提供的输入框中输入要计算校验和值的字符串。
  3. 单击生成按钮计算校验和值。
  4. 计算得到的校验和值将显示在输出框中。
  5. 您可以将此值复制到剪贴板,或者单击清除按钮清除输入和输出框。

在各种编程语言中的实现

以下是在 Python、Java、JavaScript、Golang、Ruby 和 PHP 中实现 CRC-16 哈希生成器的示例代码和描述。

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

// 计算CRC16校验值
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

# 计算CRC16校验和
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)

了解更多工具