紫光同创PGL22G开发平台试用连载(8)---程序密码之程序篇

日期:2020-09-11 来源:电子创新网作者:毛华望阅读:37

大家好:我是毛华望。目前在参加紫光同创PGL22G开发平台试用。连载第8篇。

密码设计方案:

为了方便测试,采用2层加密。1,用4个8bit作为一组密码。分3组发送。分别是:85677943,22874026,97842901.2,时间间隔, 30秒和45秒。

如果有任何一组密码没有按时到来,就要输入69963338来重新激活。当然你发送密码的时候要是4357878869963338875434.

突然感觉用串口模拟程序加密实在和实际情况差的比较远。因为如果是单片机就可以实时的发送8bit的数据,一直发送。而串口无法模拟,只能发一些数据就停下来。大概连续发送几分钟的数据吧。

Matlab做数据(excel):

Excel通用也比较容易。所以,演示用excel。

用随机rand()*99.就能随机生成99以内的数据了。

复制粘贴到txt文本。

没有任何问题。然后用串口发送。

发送的数据也没有任何问题。我用excel做了50万的数据量。发送的话5分钟。

因为串口是有时间的,所以,只要把85677943,22874026,97842901.这3个密码插入到差不多的时间位置上就可以了。为了安全起见,你可以试一下有没有数据和密码相同。

把85677943放进了开头。第2个要放在20—30秒的位置上。

时间大概是22:57:4 的位置上。

插入到这个位置上。

这个地方添加密码2 。22874026。

在之后的30—45秒内,添加密码3 。97842901

准备工作已经做完。开始写FPGA程序。

FPGA程序

输入密码是要的。

统计连续进入的4个8bit的数据。

Signalvalid信号作为有效信号。如果说密码一直是对的,那么会一直亮。如果这个信号为0,led灯就会灭。

计数器1s。1s就有1个标志位。

Clc_time时间清0用的。 只要密码到了时间就会清0.如果密码没到就会一直计数下去。统计经过了多少秒。

状态0的时候。刚上电。15秒内免费点亮。Signal_valid是1,表示可以正常使用。

如果15秒内,输入密码85677943,就可以继续使用。 并且clc_time把时间清除一下,然后继续统计时间。

如果超过15秒,没有输入密码呢?

就必须输入:69963338就可以激活了。回到状态0.当然输入的时候要输入4357878869963338875434默认前面有一堆数,后面有一堆数。

状态1,就是30秒内输入密码:22874026。 进入状态2.如果30秒内没有输入密码,进入状态3.

状态2,情况一样的。

最后拿着生成的数据,用串口发送试一下。可以了。

总结:

为了模拟,我采用了比较简单的加密。不要去问太多为什么。比如说:为何不选择时间区间,为何跳出死区就用了一节数据等。不符合现实使用的疑问。因为这里只是模拟简单的加密过程。现实使用会复杂很多。

你好: 我是毛华望。加密的程序就这样完成了。谢谢观看。

打赏
联系客服 投诉反馈  顶部