Générateur de hachage CRC-16
Manuel du Générateur de hachage CRC-16
But de l'outil
Le Générateur de hachage CRC-16 est un outil en ligne gratuit qui génère des valeurs de somme de contrôle pour n'importe quelle chaîne d'entrée donnée. Il est conçu pour fournir un moyen simple et efficace de générer une somme de contrôle à l'aide de l'algorithme CRC-16.
Avantages et bénéfices
L'utilisation du Générateur de hachage CRC-16 présente plusieurs avantages et bénéfices tels que :
- Il est en ligne et gratuit, sans dépendances système ni logiciel.
- Possibilité de le vider, de le copier et d'avoir un exemple pour faciliter son utilisation.
- La somme de contrôle générée est sécurisée et ne peut être calculée localement, garantissant ainsi la sécurité des données.
Comment utiliser l'outil
- Rendez-vous sur la page web du Générateur de hachage CRC-16 dans votre navigateur.
- Dans le champ d'entrée prévu à cet effet, saisissez la chaîne pour laquelle vous souhaitez calculer la valeur de la somme de contrôle.
- Cliquez sur le bouton Générer pour calculer la valeur de la somme de contrôle.
- La valeur de la somme de contrôle calculée s'affichera dans le champ de sortie.
- Vous pouvez copier cette valeur dans le presse-papiers ou vider les champs d'entrée et de sortie en cliquant sur le bouton Vider.
Implémentation dans différents langages de programmation
Voici des codes d'exemple et des descriptions sur la manière d'implémenter le Générateur de hachage CRC-16 en Python, Java, JavaScript, Golang, Ruby et 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)) # Sortie : "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); // Sortie : "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
# Cette fonction calcule le CRC16 d'une chaîne de caractères donnée en entrée.
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
# Exemple d'utilisation
input_str = "Free Online Tools"
checksum = crc16(input_str).to_s(16).rjust(4, '0')
puts checksum # Résultat : "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; // Output: "2dd2"
Conclusion
Le Générateur de hachage CRC-16 est un outil simple mais puissant qui peut vous aider à générer des valeurs de somme de contrôle pour vos chaînes de caractères d'entrée. En utilisant cet outil, vous pouvez vous assurer que vos données sont sécurisées et que la valeur de somme de contrôle calculée est uniquement disponible localement. Grâce aux codes d'implémentation fournis en exemple, vous pouvez facilement intégrer cet outil dans vos projets et applications.