APP下载

密码:条形码的探究

2014-11-17吴俊杰

中国信息技术教育 2014年21期
关键词:条形码字符长度

吴俊杰

密码是一种信息之间保密或者有待探究或学习的对应关系。在信息社会,从将英文数字和字母输入计算机的ASCⅡ编码到目前广为使用的条形码和二维码,编码无处不在,一般的消费者只是这一系列方便应用的受益者,很少去思考其背后的科学性和合理性。而信息技术实验的目的是让学生通过数据探究的形式去发现信息技术核心过程的内在规律,并且将这种方法应用在任何一个感兴趣的领域。生活中处处可见的条形码背后的规律的探究过程,可视为信息技术实验的一个典型案例。

● 认识条形码

在百度中搜索条形码生成器,我们发现其使用起来很简单,输入要转化为条形码的数字,系统就会按照一种对应关系生成一张图片(如图1)。

乍一看杂乱无章,仔细观察就会发现其中黑色的条纹只有两种:宽的和窄的。但是人眼很难区分宽窄的条纹之间的规律,那么我们就需要用比较系统的研究方法来探究其背后的规律。

● 寻找稳定的对应关系

作为一种编码方式将数字和宽窄条纹的组合对应起来,其中一定存在稳定的对应关系,即字符1和其对应图案是一定的,而且我们能够猜想出字符11对应的图案长度一定比数字1的要长,甚至有可能是数字1图案长度的2倍。那么下表列出的图案是否具备猜想的对应关系呢?

很显然字符1和字符11的图案长度不是2倍的关系,但是我们观察字符1111图案的中心部分,似乎存在某种周期性的关系。因此,我们有必要对条形码的数据进行进一步的挖掘。

首先将字符1到字符1111111的7组条形码导入到Scratch中,系统会自动记录每张图片的长和宽(如图2)。

我们将长度信息录入到Excel中,发现字符数目和条码长度存在明显的线性关系(如图3)。

对拟合的公式的探究更有意义,26代表着每个字符所代表的图案的宽度,而52则代表着当没有字符的时候,二维码有一个固定的长度是52,有趣的是52刚好是26的2倍,这意味着在二维码的头部有一个字符,尾部也有一个字符,结合对上面表格的观察,我们发现确实头部和尾部是一致的。也就是说一个10个数字构成的条形码的图片,它的宽度应该恰好为(10+2)×26=312像素。这些规律给了我们很大的鼓舞,根据数据全记录的方法,我们试图将二维码的图片的信息全部记录下来,以进行下一步的挖掘。

● 数据的全记录

新建一个宽高为一个像素的红点,命名为“探针”,并将字符111的二维码所对应的角色1的造型中心设定为最左侧的黑色区域,使用图4的代码,可以将二维码图片解析成一个链表,完成数据的全记录。

为了检测数据记录结果,我们新建一个角色“还原”是一条1个像素宽的竖线,有黑色和白色两个造型。使用图5的代码在原来的111条形码图片的上方还原成一条跟原始图案一致的条形码,这说明数据的全记录完成,并且没有遗漏和损失。

● 条形码的解离

之前我们观察到条形码111的中央部分存在一定的周期性,但是因条件所限不容易将这种周期性直观地表现出来。图6所示的程序改进了之前条形码还原的结构并将其直观地表现出来。

最后我们回到数字的表示上来,分析字符串0123456789的条形码图案,找到了数字0~9的对应二维码图案(如图7)。

至此,我们已经完全了解了条形码的制作原理,那么很容易就能编写一个软件,只需要对链表“亮度解析0和1”做进一步分析,就可以输入任意一串数字,生成一个可以被识别的条形码。但是,这就像“山寨”或者“逆向工程”一样,我们知道一个螺丝要生产成什么样子,可我们不知道它为什么要生产成这个样子。因此,探究条形码背后的编码规则才刚刚开始,但是所幸的是,我们掌握了信息技术实验的一般方法:寻找稳定的对应关系、数据全记录、数据可视化。那么下一步就是找到编码规则,并且思考它的合理性,甚至有所创新,并且分享出去,这种做法才是我们期待的“新山寨”。endprint

密码是一种信息之间保密或者有待探究或学习的对应关系。在信息社会,从将英文数字和字母输入计算机的ASCⅡ编码到目前广为使用的条形码和二维码,编码无处不在,一般的消费者只是这一系列方便应用的受益者,很少去思考其背后的科学性和合理性。而信息技术实验的目的是让学生通过数据探究的形式去发现信息技术核心过程的内在规律,并且将这种方法应用在任何一个感兴趣的领域。生活中处处可见的条形码背后的规律的探究过程,可视为信息技术实验的一个典型案例。

● 认识条形码

在百度中搜索条形码生成器,我们发现其使用起来很简单,输入要转化为条形码的数字,系统就会按照一种对应关系生成一张图片(如图1)。

乍一看杂乱无章,仔细观察就会发现其中黑色的条纹只有两种:宽的和窄的。但是人眼很难区分宽窄的条纹之间的规律,那么我们就需要用比较系统的研究方法来探究其背后的规律。

● 寻找稳定的对应关系

作为一种编码方式将数字和宽窄条纹的组合对应起来,其中一定存在稳定的对应关系,即字符1和其对应图案是一定的,而且我们能够猜想出字符11对应的图案长度一定比数字1的要长,甚至有可能是数字1图案长度的2倍。那么下表列出的图案是否具备猜想的对应关系呢?

很显然字符1和字符11的图案长度不是2倍的关系,但是我们观察字符1111图案的中心部分,似乎存在某种周期性的关系。因此,我们有必要对条形码的数据进行进一步的挖掘。

首先将字符1到字符1111111的7组条形码导入到Scratch中,系统会自动记录每张图片的长和宽(如图2)。

我们将长度信息录入到Excel中,发现字符数目和条码长度存在明显的线性关系(如图3)。

对拟合的公式的探究更有意义,26代表着每个字符所代表的图案的宽度,而52则代表着当没有字符的时候,二维码有一个固定的长度是52,有趣的是52刚好是26的2倍,这意味着在二维码的头部有一个字符,尾部也有一个字符,结合对上面表格的观察,我们发现确实头部和尾部是一致的。也就是说一个10个数字构成的条形码的图片,它的宽度应该恰好为(10+2)×26=312像素。这些规律给了我们很大的鼓舞,根据数据全记录的方法,我们试图将二维码的图片的信息全部记录下来,以进行下一步的挖掘。

● 数据的全记录

新建一个宽高为一个像素的红点,命名为“探针”,并将字符111的二维码所对应的角色1的造型中心设定为最左侧的黑色区域,使用图4的代码,可以将二维码图片解析成一个链表,完成数据的全记录。

为了检测数据记录结果,我们新建一个角色“还原”是一条1个像素宽的竖线,有黑色和白色两个造型。使用图5的代码在原来的111条形码图片的上方还原成一条跟原始图案一致的条形码,这说明数据的全记录完成,并且没有遗漏和损失。

● 条形码的解离

之前我们观察到条形码111的中央部分存在一定的周期性,但是因条件所限不容易将这种周期性直观地表现出来。图6所示的程序改进了之前条形码还原的结构并将其直观地表现出来。

最后我们回到数字的表示上来,分析字符串0123456789的条形码图案,找到了数字0~9的对应二维码图案(如图7)。

至此,我们已经完全了解了条形码的制作原理,那么很容易就能编写一个软件,只需要对链表“亮度解析0和1”做进一步分析,就可以输入任意一串数字,生成一个可以被识别的条形码。但是,这就像“山寨”或者“逆向工程”一样,我们知道一个螺丝要生产成什么样子,可我们不知道它为什么要生产成这个样子。因此,探究条形码背后的编码规则才刚刚开始,但是所幸的是,我们掌握了信息技术实验的一般方法:寻找稳定的对应关系、数据全记录、数据可视化。那么下一步就是找到编码规则,并且思考它的合理性,甚至有所创新,并且分享出去,这种做法才是我们期待的“新山寨”。endprint

密码是一种信息之间保密或者有待探究或学习的对应关系。在信息社会,从将英文数字和字母输入计算机的ASCⅡ编码到目前广为使用的条形码和二维码,编码无处不在,一般的消费者只是这一系列方便应用的受益者,很少去思考其背后的科学性和合理性。而信息技术实验的目的是让学生通过数据探究的形式去发现信息技术核心过程的内在规律,并且将这种方法应用在任何一个感兴趣的领域。生活中处处可见的条形码背后的规律的探究过程,可视为信息技术实验的一个典型案例。

● 认识条形码

在百度中搜索条形码生成器,我们发现其使用起来很简单,输入要转化为条形码的数字,系统就会按照一种对应关系生成一张图片(如图1)。

乍一看杂乱无章,仔细观察就会发现其中黑色的条纹只有两种:宽的和窄的。但是人眼很难区分宽窄的条纹之间的规律,那么我们就需要用比较系统的研究方法来探究其背后的规律。

● 寻找稳定的对应关系

作为一种编码方式将数字和宽窄条纹的组合对应起来,其中一定存在稳定的对应关系,即字符1和其对应图案是一定的,而且我们能够猜想出字符11对应的图案长度一定比数字1的要长,甚至有可能是数字1图案长度的2倍。那么下表列出的图案是否具备猜想的对应关系呢?

很显然字符1和字符11的图案长度不是2倍的关系,但是我们观察字符1111图案的中心部分,似乎存在某种周期性的关系。因此,我们有必要对条形码的数据进行进一步的挖掘。

首先将字符1到字符1111111的7组条形码导入到Scratch中,系统会自动记录每张图片的长和宽(如图2)。

我们将长度信息录入到Excel中,发现字符数目和条码长度存在明显的线性关系(如图3)。

对拟合的公式的探究更有意义,26代表着每个字符所代表的图案的宽度,而52则代表着当没有字符的时候,二维码有一个固定的长度是52,有趣的是52刚好是26的2倍,这意味着在二维码的头部有一个字符,尾部也有一个字符,结合对上面表格的观察,我们发现确实头部和尾部是一致的。也就是说一个10个数字构成的条形码的图片,它的宽度应该恰好为(10+2)×26=312像素。这些规律给了我们很大的鼓舞,根据数据全记录的方法,我们试图将二维码的图片的信息全部记录下来,以进行下一步的挖掘。

● 数据的全记录

新建一个宽高为一个像素的红点,命名为“探针”,并将字符111的二维码所对应的角色1的造型中心设定为最左侧的黑色区域,使用图4的代码,可以将二维码图片解析成一个链表,完成数据的全记录。

为了检测数据记录结果,我们新建一个角色“还原”是一条1个像素宽的竖线,有黑色和白色两个造型。使用图5的代码在原来的111条形码图片的上方还原成一条跟原始图案一致的条形码,这说明数据的全记录完成,并且没有遗漏和损失。

● 条形码的解离

之前我们观察到条形码111的中央部分存在一定的周期性,但是因条件所限不容易将这种周期性直观地表现出来。图6所示的程序改进了之前条形码还原的结构并将其直观地表现出来。

最后我们回到数字的表示上来,分析字符串0123456789的条形码图案,找到了数字0~9的对应二维码图案(如图7)。

至此,我们已经完全了解了条形码的制作原理,那么很容易就能编写一个软件,只需要对链表“亮度解析0和1”做进一步分析,就可以输入任意一串数字,生成一个可以被识别的条形码。但是,这就像“山寨”或者“逆向工程”一样,我们知道一个螺丝要生产成什么样子,可我们不知道它为什么要生产成这个样子。因此,探究条形码背后的编码规则才刚刚开始,但是所幸的是,我们掌握了信息技术实验的一般方法:寻找稳定的对应关系、数据全记录、数据可视化。那么下一步就是找到编码规则,并且思考它的合理性,甚至有所创新,并且分享出去,这种做法才是我们期待的“新山寨”。endprint

猜你喜欢

条形码字符长度
Python实现图片转字符画
创意条形码
正则表达式快速入门
图片轻松变身ASCⅡ艺术画
条形码里有数学
有趣的条形码
爱的长度
特殊长度的测量
长度单位
长度学校里的故事