问题标签 [check-digit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1044 浏览

algorithm - 如何实现校验和和冗余的Damm算法

这里有没有人知道任何教科书或行业指南为普通工程师(不是数学博士)提供实施 Damm 算法的实用指南?

具体来说,我想知道拉丁方格是如何生成的,而不是盲目地复制维基百科上提供的 base-10 或剪切和粘贴其他人未经检查的代码。

我正在寻找具有灵活基本系统的选项,包括(但不限于)基本 10、16、32 或 36(10 个数字加 26 个英文字母)。我相信上述方案支持这一点(除 2 和 6 之外的所有基础),有人知道这是否正确吗?

H. Michael Damm 的博士论文有英文版吗?

有没有一种方法可以添加额外的校验位以在编号方案中包含冗余,即将四位数据位的有效负载扩展为七位数字,其中七位数字中只有四位需要正确,并且仍然可以完全恢复原始数据?

即,如果 1234 有三个冗余数字,比如 789,那么 1234789 可以作为 1X3XX89 传输,其中 X 是不可读的数字,但仍然可以完全恢复。

这对于国际银行号码中使用的 mod-97 方案似乎是可能的,但这似乎不具有非 base-10 Damm 方案的灵活性,或者一些更好的语音错误检测。

我什至不知道从哪里开始寻找。

0 投票
0 回答
1004 浏览

algorithm - OCR序列号校验位

我想借助 OCR 读取大约 16-20 个字符(AZ,0-9)的序列号。因为每次我想在序列号中添加一个校验字符时,所有字符都不会被正确识别。目前我找到了简单的 Luhn mod N 算法(维基百科)。该算法对于转置错误 (09 => 90) 是不安全的。

来自维基百科的实现:

NumberOfValidInputCharacters() 将是 36 (AZ, 0-9)

但是,如果我将“因子”变量修改为序列号中字符的实际索引,是否会像以前一样更安全?(参见代码中的 ** ** 行)

0 投票
2 回答
2374 浏览

vb.net - 32 hexadecimal digit string output

Hey all I have the following 32 hexadecimal digit string:

And when I need to take that number above and look up something with it I need it to be searchable in this type of format:

The official format it needs to be in order to search is explained like this:

Format:

where N are hexadecimal digits, X and Y are check digits.

16 hexadecimal digit followed with a check character (using Arabic numerals 0 to 9 and letters A to Z), followed by an 8 hexadecimal digit version segment, followed with a check character (using Arabic numerals 0 to 9 and letters A to Z).

Defined in ISO 15706-2 Annex D. The ISAN.

ROOT: 0000-0000-3F64

Tree segment of 4 digit hexadecimal values separated with a hyphen "-"

EpisodeOrPart: 0000

One segment of 4 digit hexadecimal values.

Check1: S

One digit made of a decimal value from 0 to 9 or an upper case charater from A to Z.

Version: 0000-0000

Two segments of 4 digits hexadecimal values separated with an hyphen "-".

Check2: R

One digit made of a decimal value from 0 to 9 or an upper case character from A to Z.

And I am not really sure how to go about converting what I have to the needed format so any help would be great!

Note: The "-S" and the "-R" can be removed. Those are random computer generated algorithms that add those which, as you see in the example above, are not needed in the search if you do not have them available. So really I would only be interested in getting the format to be "0000-0000-3F64-0000-0000-0000".

0 投票
2 回答
3768 浏览

python - 我的 GTIN 8 校验位和有效性检查不起作用

我的代码应该要求输入 7 位数字 (GTIN 8) 并告诉您第 8 位数字和/或要求您输入 8 位数字 (GTIN 8) 数字并判断它是否是有效的 GTIN 8 号码。我没有得到这些输出。

当我输入非 7 位数字时出现错误消息

c = int(GTIN[2])*3

IndexError:字符串索引超出范围

输入 8 位数字时出现错误消息

如果 len(str(GTIN))==8 和 sum(total)%10==0:

TypeError: 'int' object is not iterable 我需要对我的代码做些什么来修复这个错误?

谢谢。这是我的代码(我可以澄清你不确定的任何事情):

0 投票
2 回答
352 浏览

algorithm - Damm 算法的替代基表

Damm 算法非常适合处理校验位 https://en.wikipedia.org/wiki/Damm_algorithm

我想将它用于应用程序的两个不同实体。但是,对于相同的号码,它们不应具有相同的校验位。

所以我必须为每个实体使用不同的基表。基表是一个完全反对称的拟群,n=10 来自维基百科的例子:
-- 0 1 2 3 4 5 6 7 8 9
0 0 3 1 7 5 9 8 6 4 2
1 7 0 9 2 1 5 4 8 6 3
2 4 2 0 6 8 7 1 3 5 9
3 1 7 5 0 9 8 3 4 2 6
4 6 1 2 3 0 4 5 9 7 8
5 3 6 7 4 2 0 9 5 8 1
6 5 8 6 9 7 2 0 1 3 4
7 8 9 4 5 3 6 2 0 1 7
8 9 4 3 8 6 1 7 2 0 5
9 2 5 8 1 4 3 6 7 9 0

我如何生成第二个,这是不同的,但也是 n=10 ?

0 投票
3 回答
1159 浏览

ms-access - 如何计算 EAN-14 的校验和数字?

我正在尝试在 vba 访问中验证 EAN 14 UPC 代码。我试图在网上找到它,但没有运气。我刚刚找到了 EAN 8 和 EAN 13。所以,我只是尝试将其编码为类似于 EAN 13,如下所示:

它不工作。我遇到的问题是虽然我输入了有效的 EAN,但它给了我 EAN14-BAD。我认为我的验证代码不起作用。+ (Val(Mid(Barcode, 13, 1))) 我刚刚在 EAN13 验证代码上添加了最后一行 。请帮忙。

0 投票
1 回答
6176 浏览

java - 编写java程序来计算校验位

我有这个计算校验位数字的java项目(使用eclipse)。我被困在如何编写这个代码上。

支票有一个校验位,因此它使包括校验位在内的所有景点的总和可以被 7 整除。假设总是有 4 个数字加上校验位。样本为3875,编号为5 二审题为5862,需要查验号。我该怎么做呢?我必须输入每个数字并添加它们,但我该怎么做剩下的?

这是计算机科学课程的入门课程,因此请不要使用超级复杂的东西,就好像我们没有学过一样,我无法使用它。

我的老师很烂,因为我们什么都没学到。我已经做了部分 a 我需要部分 b。谢谢。这是一个地狱澄清的图像。

问题

0 投票
1 回答
1518 浏览

php - 使用 PHP 验证校验位 11 (mod 11)

如何使用 PHP 使用校验位 11 (mod 11) 验证 NHS 号码。

在互联网上长时间搜索试图找到一个可以用来验证校验位 11(mod 11)号码的功能后,我找不到,所以我最终自己开发了一个并在这里分享。我希望有人觉得它有用。

0 投票
1 回答
1317 浏览

javascript - 如何在 javascript 中使用 luhn 算法获取下一个校验位

我有以下代码使用 luhn 算法模块 10 验证某个数字是否有效。

我需要另一个函数,它实际上通过给出四位数字来生成下一个校验位,因此第 5 位将是下一位校验和。

0 投票
2 回答
1176 浏览

javascript - 我需要使用字母数字校验和验证输入字符串

我有以下函数验证数字输入仅包含基于 Luhn 算法的数字:

无论如何我也可以验证字母数字,所以假设我有一个有效的 ID: AC813(6) , () 是校验和。那么有没有一种方法可以防止用户输入错误的 AF813(6),这样会告诉用户不正确的 ID。

我感谢您的帮助