---
title: "Bájtkódolások és ellenőrzőösszegek"
description: "Bájtkódolások a TapHome szkriptben: bináris adatok Base64 és base64url alakja, hexadecimális szöveg, CRC16 Modbus, XMODEM, CCITT-FALSE vagy KERMIT változatban, valamint CRC32."
url: "https://taphome.com/hu/docs/script/byte-encodings/"
language: hu
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["byte-encodings","packet-parser","modbus","scripting-language"]
  questions: ["Hogyan dekódolhatok Base64 bináris adatokat egy TapHome szkriptben?","Hogyan alakíthatok bájtokat hexadecimális szöveggé egy TapHome szkriptben?","Hogyan számolhatok Modbus RTU CRC16-ot a szkriptben?","Milyen Core verzió kell a bájtkódoló függvényekhez?"]
---

# Bájtkódolások és ellenőrzőösszegek

TapHome szkriptfüggvények: TOBASE64 és FROMBASE64 (base64url is), TOHEX és FROMHEX, CRC16 és CRC32 — bájtok szövegként és vissza, valamint keretek ellenőrzőösszegei.

Utoljára frissítve: 2026-11-06

A `TOBASE64`, `FROMBASE64`, `TOHEX`, `FROMHEX`, `CRC16` és `CRC32` bájtokat alakít szöveggé és vissza, és ellenőrzőösszegeket számol, többnyire a [titkosító és hash-függvényekkel](https://taphome.com/hu/docs/script/encryption-and-hashes/) együtt. Csak értékeket állítanak elő, ezért minden szkriptben működnek. Mindegyikhez TapHome Next 2026.1.40991+ szükséges.

A `TOBASE64`, `TOHEX`, `CRC16` és `CRC32` a titkosító függvényekhez hasonlóan bájtadatokat fogad: `collection<uint8>` gyűjteményt, blobot vagy szöveget, amely ISO-8859-1 bájtokként kerül felhasználásra (UTF-8-hoz add át a `TOBYTES(text, "utf-8")` értéket). A `TOBASE64` és a `TOHEX` szöveget ad vissza, a `CRC16` és a `CRC32` `uint` számot; a `FROMBASE64` és a `FROMHEX` szöveget fogad, és `collection<uint8>` gyűjteményt ad vissza.

## TOBASE64, FROMBASE64

A `TOBASE64` bájtadatokat alakít Base64 szöveggé, a `FROMBASE64` a Base64 szöveget alakítja vissza bájtokká.

```text
TOBASE64(data [, variant])
FROMBASE64(text [, variant])
```

A `variant` értéke `"standard"` (alapértelmezett) vagy `"url"`, a kis- és nagybetű nem számít. Az `"url"` a base64url (RFC 4648 §5), amely `+` és `/` helyett `-` és `_` jelet használ. A `TOBASE64` `"url"` esetén elhagyja a `=` kitöltést, ahogy a JWT és a legtöbb webes API elvárja (Python `base64.urlsafe_b64encode(data).rstrip(b"=")`); a `FROMBASE64` `"url"` esetén kitöltéssel és anélkül is elfogadja a szöveget.

**Visszatérési érték** — a `TOBASE64` szöveget, a `FROMBASE64` `collection<uint8>` gyűjteményt.

**Megjegyzések** — Az [ENCODE és a DECODE](https://taphome.com/hu/docs/script/data-type-conversions/#encode) `"base64"` esetén UTF-8 szövegen keresztül dolgozik, így a `0x7F` feletti bájtok nem maradnak épen. A titkosított és más bináris adatok a `TOBASE64` és a `FROMBASE64` függvényen keresztül menjenek.

**Példa**

```taphome
# két bájt szabványos Base64 alakja
TOBASE64(FROMHEX("fbff"));
# Result: "+/8="
# base64url: kitöltés nélkül, - és _ a + és / helyett
TOBASE64(FROMHEX("fbff"), "url");
# Result: "-_8"
# base64url visszafejtése hex szöveggé
TOHEX(FROMBASE64("-_8", "url"));
# Result: "fbff"
```

**Hibák** — *TOBASE64 Unknown variant. Valid values are 'standard', 'url'* (a `FROMBASE64` a saját nevét írja); *FROMBASE64 - '+' and '/' are not base64url characters, leave the "url" argument out for standard Base64*; *FROMBASE64 - argument must be a string*; *The provided text does not have the base64 format.*

**Elérhetőség** — TapHome Next 2026.1.40991+.

## TOHEX, FROMHEX

A `TOHEX` a bájtadatokat kisbetűs hexadecimális szövegként adja vissza, a `FROMHEX` a hexadecimális szöveget alakítja vissza bájtokká.

```text
TOHEX(data)
FROMHEX(text)
```

**Megjegyzések**

- A `FROMHEX` elfogadja a kis- és nagybetűs számjegyeket és a köztük lévő szóközöket, mint a Python `bytes.fromhex` függvénye. Minden más karakter, a `0x` előtagot és a `:` elválasztókat is beleértve, hiba, és az is, ha a számjegyek száma páratlan. Az üres szöveg üres gyűjteményt ad.
- A hexadecimális szövegből dolgozó [BYTECOLLECTION](https://taphome.com/hu/docs/script/text-string-and-byte-array/#bytecollection) függvénnyel ellentétben, amely a többi karaktert csendben figyelmen kívül hagyja, és 2048 bájtra korlátozott, a `FROMHEX` hosszát semmi nem korlátozza, így mindent visszaalakít, amit a `TOHEX` előállított.

**Példa**

```taphome
# három bájt Base64 alakban
TOBASE64(FROMHEX("ff0080"));
# Result: "/wCA"
# Base64 vissza bájtokká, majd hex szöveg
TOHEX(FROMBASE64("/wCA"));
# Result: "ff0080"
# a nagybetűk és a szóközök megengedettek
TOHEX(FROMHEX("FF 00 80"));
# Result: "ff0080"
```

**Hibák** — *FROMHEX - invalid hex digit 'x'* (az előtagot vagy az elválasztókat a `REPLACE` függvénnyel távolítsd el); *FROMHEX - the number of hex digits must be even, it is N*; *FROMHEX - argument must be a string*.

**Elérhetőség** — TapHome Next 2026.1.40991+.

## CRC16, CRC32

A `CRC16` a bájtadatok 16 bites CRC ellenőrzőösszegét adja vissza, a `CRC32` a zlib, az Ethernet és a ZIP CRC-32 összegét (Python `zlib.crc32`).

```text
CRC16(data [, variant])
CRC32(data)
```

A `variant` a `CRC16` paramétereit választja ki, a kis- és nagybetű nem számít. Az ellenőrző érték a `"123456789"` szöveg CRC-je:

| `variant` | Ellenőrző érték | Más néven |
|---|---|---|
| `"MODBUS"` (alapértelmezett) | `0x4B37` | Modbus RTU keretek |
| `"XMODEM"` | `0x31C3` | Python `binascii.crc_hqx(data, 0)` |
| `"CCITT-FALSE"` | `0x29B1` | az `"IBM-3740"` ugyanennek a változatnak számít |
| `"KERMIT"` | `0x2189` | |

A `CRC32` ellenőrző értéke `0xCBF43926` (3421780262).

**Visszatérési érték** — `uint` szám, nem bájtok. Ha az ellenőrzőösszeget egy keretbe akarod tenni, csomagold a [PACKVALUE](https://taphome.com/hu/docs/script/binary-data/#packvalue) függvénnyel a protokoll által várt bájtsorrendben; a Modbus RTU az alsó bájtot küldi elsőként.

**Példa**

```taphome
TOSTRING(CRC16(FROMHEX("0103000A0001")), "X4");
# Result: "08A4"
TOSTRING(CRC32("123456789"), "X8");
# Result: "CBF43926"
```

**Példa — Modbus RTU ellenőrzőösszeg hozzáfűzése**

```taphome
# a keret bájtjai hex szövegből
VAR frame := FROMHEX("01 03 00 0A 00 01");
# üres, 2 bájtos puffer az ellenőrző összegnek
VAR crc := BYTECOLLECTION(2);
# a CRC16 becsomagolása, alsó bájt elöl
PACKVALUE(crc, 0, LittleEndianUint16, CRC16(frame));
# az ellenőrző összeg hozzáfűzése a kerethez
APPEND(frame, crc);
# Result: frame is 01 03 00 0A 00 01 A4 08
```

**Hibák** — *CRC16 Unknown variant. Valid values are 'MODBUS', 'XMODEM', 'CCITT-FALSE', 'KERMIT'*.

**Elérhetőség** — TapHome Next 2026.1.40991+.

**Lásd még** — [Titkosítás és hash-ek](https://taphome.com/hu/docs/script/encryption-and-hashes/), [Bináris adatok](https://taphome.com/hu/docs/script/binary-data/), [Adattípus-konverziók](https://taphome.com/hu/docs/script/data-type-conversions/).
