分享

译码校验:条形码的解密和安全校验

 新用户65147843 2020-12-22

之前我们通过探究条形码的规律,得出了一些规律,即用等间距的黑色线条1表示黑色,0表示白色。接下来我们就对所有的code39型条形码进行完全解密。参考论文

● 条形码的解密

通过亮度解析的程序,我们可以将条形码生成器生成的单一字符0~9用下页表1表示出来,为了明确每个数字和字母的位置,我们给每一个字元都规定了一个编号。

表1  数字0~9的39码编码对映表

编号 字元 逻辑型态

0 0 101001101101

1 1 110100101011

2 2 101100101011

3 3 110110010101

4 4 101001101011

5 5 110100110101

6 6 101100110101

7 7 101001011011

8 8 110100101101

9 9 101100101101

同理,我们可以找到字元A~Z以及一些特殊符号的逻辑形态,并且继续之前数字编号的顺序给他们一个唯一的编号,如表所示1。

我们可以看出所有字母的逻辑形态的两边都是1,这保证了两边都有一段黑色,保证了条码长度的稳定。而且在形如下图的条码的两端都有一个*字符的条码,确定了条形码的有效信息的范围。

至此,我们就像掌握了一种英文的书写方式一样,甚至可以用条形码的方式写一首密码的小诗,通过简单的Scratch程序,我们就可以将英文翻译成条形码表示出来。

● 条形码的安全校验

为了让条形码的解码过程更加准确,code39型条形码的设计者,设计了解码校验的功能,事实上校验的思想在所有的信息传递的过程中都普遍存在,就像你听不清别人的话或者觉得听到的东西明显不合逻辑会问一句“你说的是什么”一样,条形码的校验也是起到这个作用。code39码可以根据需要传递的信息生成一个检查码,它的计算方法是,搭配表2可以找到每个字元的编号,将查出的编号累加后再除以43,得到的余数再查出相对的编码字元,即为检查码字元。

例如,要算出*S123$5*这笔资料的检查码,其计算过程如下:①参考检查码相对值对照表,找出编码字元编号。其中,S的相对值为28;1的相对值为1;2的相对值为2;3的相对值为3;$的相对值为39;5的相对值为5。②将各相对值累加除以43,累加相对值=28+1+2+3+39+5=78可以得出78÷43=1余35。③查出与余数相对的编码字元。余数=35,查表1和表2,得到相对值=35之编码字元为Z,故检查码=Z,得含检查码在内的39码,为*S123$5Z*。

通过安全校验,如果条形码解码的结果和安全校验码不符,则可以判断解码失败,就像我们在超市购物时,常常遇到的扫不出条码的情况一样,保证了信息传递过程中的安全性。校验的步骤是发生在通信过程中的一个普遍的过程,如最常见的奇偶校验等,在进一步的深入了解中我们会更加深入地体会到校验的重要性。

参考资料http:///index.php?c=show&id=5047

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多