首頁/編碼知識/條碼基礎/EAN-13 校驗位演算法
條碼基礎 · 閱讀 4 分鐘
條碼基礎內容已審核

EAN-13 校驗位是怎麼算出來的

前 12 位按「1、3、1、3…」交替加權求和,取結果對 10 的補數——校驗位就這麼來的。它不保證商品是真的,但能擋住絕大多數錄入與印刷錯誤。

導讀摘要:本文逐步演示 EAN-13 校驗位的 mod10 計算過程,說明為什麼加權順序是「1、3」而不是「3、1」,以及校驗通過到底意味著什麼、不意味著什麼。文末可用線上工具複算任意號碼。
01

第一步:前 12 位交替加權

EAN-13 共 13 位,最後一位是校驗位,前 12 位是數據位。計算時從第 1 位開始,奇數位(第 1、3、5…位)乘 1,偶數位(第 2、4、6…位)乘 3,然後把 12 個乘積相加。注意:從左邊第一位開始數,不是從右邊。

02

第二步:求補數得到校驗位

把上一步的和对 10 取餘,再用 10 減去這個餘數,結果再對 10 取餘——得到的個位數就是校驗位。公式寫成 (10 − 和 mod 10) mod 10,末尾再取一次 mod 是為了處理餘數為 0 時得到 10 的情況。

03

為什麼加權是 1 和 3

權重 1/3 交替的設計讓相鄰位的權重不同,這樣「兩個相鄰數字寫反」這類最常見的人為錯誤(如 12 看成 21)幾乎必然改變加權和,從而被抓出。這是校驗位設計的核心目的:不是加密,而是錯誤檢測。

04

校驗通過意味著什麼

只意味著一件事:這串數字的構成是合法的,即它確實可能是一個按規則生成的 GTIN。它不說明這個號碼已經被分配給了某個企業,不說明商品是真品,也不說明號碼在 GS1 資料庫裡存在。要確認歸屬,需要查成員組織的註冊資訊;要判斷真偽,需要品牌方的防偽手段。這是很多文章會混淆的地方。

要點速覽

可直接摘錄的關鍵結論。

要點 01

演算法核心三句

從左起奇數位×1、偶數位×3,求和,取 (10 − 和 mod 10) mod 10。

要點 02

加權設計防的是轉置錯誤

相鄰位權重不同,讓「數字寫反」這類高頻錯誤無處可躲。

要點 03

校驗通過 ≠ 號碼有效

格式合法只說明可能合法,不說明已分配、不說明商品為真。

要點 04

手填校驗位是高風險動作

錯了掃不出,還進印刷流程會造成整批包裝報廢。

數據對照

位序數字權重乘積
1616
29327
3010
4133
5212
6339
7414
85315
9616
107321
11818
129327
合計——128
補數 (10 − 128 mod 10) mod 10——2

圖示

EAN-13 校驗位演示

EAN-13 校驗位演示真實編碼渲染
6901234567892

示例 690123456789 為演示用前 12 位,校驗位由演算法推導;結果號碼不屬於任何企業。

術語解釋

本文涉及的專有名詞。

mod10

模 10 運算,取除以 10 的餘數。GS1 系列校驗位均基於 mod10。

加權和

各位數字乘以各自權重後的總和,是校驗計算的中間量。

轉置錯誤

相鄰兩位數字順序寫反,是人工錄入最高發的錯誤類型之一。

相關問答

我算出來是 10,怎麼辦?+
這種情況不會出現在正確結果裡——公式末尾的 mod 10 會把 10 歸零。若手動算得 10,檢查是否漏了最後一步取餘。
UPC-A 的演算法一樣嗎?+
結構相同,但加權順序相反:UPC-A 從左起奇數位乘 3、偶數位乘 1。這也是同一條碼用不同演算法會得出不同結果的原因。
校驗位可以自己隨便填嗎?+
不可以。校驗位是資料位的函數,改了任何一位資料位校驗位都要重算。號碼編排完成後應先用工具批量校驗再交付印刷。
這個問題一定要找代理辦嗎?+
不強制。你可以直接向對應成員組織申請;代理的價值在於選號段、編排號碼、核對材料與後續變更續展的連續性管理,是否委託取決於你的時間成本。
內容裡的數字可以直接用嗎?+
文中出現的條碼均為按 GS1 規則生成的演示號碼,結構合法但不屬於任何企業,切勿直接用於真實商品;正式編碼需按註冊取得的代碼段自行編排。
多久能拿到結果?+
各成員組織受理週期不同,本站不提供未經確認的天數承諾。提交需求後由編碼顧問按當期受理進度同步節點。

權威來源與說明

本文內容依據以下公開標準與機構規範整理,可自行複核。

來源 01

GS1 通用規範(General Specifications)

GS1 是管理全球商品編碼體系的國際組織,其通用規範規定了 GTIN、GLN、SSCC 等編碼結構、校驗位算法與符號印刷要求。

來源 02

開源解碼器生態(ZXing / zxing-cpp / zbar)

本站所有條碼示例均經開源解碼器回讀驗證,可自行複核,避免出現「看起來像但掃不出來」的圖示。

內容聲明:本文為編碼知識的通用說明,不含任何具體金額、天數承諾或法規條款號;涉及具體市場與平台的當期要求,請以對應機構與平台的官方文件為準。文中出現的條碼均為按 GS1 規則生成的演示號碼,不屬於任何企業,請勿用於真實商品。

相關文章

看完還有具體問題?

知識頁解決通用問題,具體到你的商品、市場與渠道時,直接問編碼顧問更快。

—