JZGKCHINA
工控技术分享平台
此文源自西门子技术论坛
这里介绍下动态加密计时催款程序的解决思路及博途V15的源程序供各位朋友参考。所谓动态密码,就是所用的解密密码是动态实时生成的,也就是说密码是随时间变化而变化。
过程是这样实现的。当调试人员在项目调试完成后,设置一个到计时天数,当天数到达后设备锁机,HMI上跳出解锁界面,这个时候点击HMI上的生成解锁码按钮,生成解锁码(解锁码是在动态验证码中挑选8位生成的,在此基础上还可以扩展出随机生成的解锁码..........)。
然后客户把解锁码告诉给调试人员,调试人员根据解锁码计算出解密密码告诉给客户解密(调试人员是需要知道这个解密算法)。
加密计时模块
程序块数据结构
程序完成步骤
1、 首先调用RD_LOC_T读取日期时间存入到FB块本地临时变量中,读取秒数,根据秒数计算天数
2、 调用西门子官方随机数生成块,并将随机数加上索引。
3、 将随机数按照索引的顺序,放入相应的寄存器,并转成字符并显示在HMI上,可以看到动态的字符变化的炫酷效果
4、 生成解锁码显示在HMI,客户把这个解锁码告诉调试人员,调试人员需要解锁码计算出密码。
5、 制作解密算法(这个机密算法根据需要可以自己更改)并强转成DINT类型,并密码核对解密。
6、 解密完成复位状态
源程序请参考归档文件,在此基础上可以扩展出更复杂的加密解密方法。
博途V15归档文件下载链接:
http://www.ad.siemens.com.cn/Mysupport/Api/ExplainSource.ashx?path=/club/bbs/upload/file/20190703/6369776369604887308914588.rar&title=wrc%E7%A8%8B%E5%BA%8F%E5%BA%93_20190703_1512.rar