导读:一、校验码的防伪原理,二、校验码的应用需求,三、Excel生成校验码的方法,四、使用效果预览
一、校验码的防伪原理
校验码,相信大家都熟悉,看过、接触过,因为所有的机打发票都有校验码(或叫电子指纹)。
顾名思义校验是用来防伪的,然而,它是如何防伪的呢?要知道如何防伪得先了解校验码是如何生成?
校验码的生成,是通过随机数产生函数来实现的,即在每次操作的同时系统产生一个随机的不规则的唯一的数,不同机器,不同时间操作产生的随机数是不一样的,人为也是无法预知的。
了解校验码生成机制后,只要把正式打印生成的校验码做一个备份,拿纸质文档的校验码与备份校验码进行比对。如果相符就是正确的;不符就有可能是通过非指定机器打印的,就有修改虚伪嫌疑。这就是校验码的防伪原理。
校验码也就是简单算法的数字签名,即数字证书。有关数字证书,敬请【关注】头条号@Excel财务VBA,了解后续文章介绍。
二、校验码的应用需求
既然校验码能防伪,那么,有哪些领域需要用到校验码呢?简单说就是所提供的文档必须确保真实有效时,都有必要附加校验码以备核实。比如:自制所有报销凭证;打印具有证明功能的文书;各种毕业证书;获奖证书;职称证书等等。既然用途这么多,具有校验码的文档如何创建呢?是简单、省事的方法就是利用Excel制作文档,并在其中插入一个校验码。本文就以"差旅费报销单"为例,介绍Excel设置在重要文档中自动生成随机校验码,防止用其他机器修改打印的方法。
三、Excel生成校验码的方法有三种
第一种方法的设置流程:选择插入校验码的单元格(L5)→在编辑栏输入公式【=100000+INT(RAND()*900000)】→回车键→OK(详见图1) 。函数含义说明:INT含义:INT(取生成的随机数的整数部分);RAND含义:RAND()无参数函数,生成大于等于 0 及小于 1 的随机实数。公式含义说明:随机生成大于10万,小于100万的六位整数。第二种方法的设置流程:选择插入校验码的单元格(L5)→在编辑栏输入公式【=RANDBETWEEN(100000,999999)】→回车键→OK(详见图2)。函数含义说明:RANDBETWEEN含义:RANDBETWEEN (要生成的最小整数, 要生成的最大整数);公式含义同第一种方法。第三种方法的设置流程:点击【开发工具】,接着点击【Visual Basic】,再接着双击工作表名称,最后,在弹出的代码窗口考录以下代码(详见图3)。
Private Sub Worksheet_SelectionChange(ByVal Target As Range) '——单击格事件 If Target.Address = "$Q$15" Then '——点击打印提交 Randomize '——初始化随机数生成器 yanzengma = Int(Rnd * 900000) + 100000 '——生成随机6位数校验码 Range("L5") = yanzengma '——写入校证码 End IfEnd Sub
四,使用效果预览(详见图4)。