计算机-基于DES算法的二维码扫描的实现(4)

2019-04-16 22:32

图9 扫描二维码

public void onClick(View v) {

Intent openCameraIntent = new

Intent(BarCodeTestActivity.this,CaptureActivity.class); startActivityForResult(openCameraIntent, 0); }

4.3.3 数据解密

(1)解密算法设计。解密算法程序如图10所示。

图10解密算法程序图 public String decrypt(byte[] encryptData) throws UnsupportedEncodingException{ byte[] bytekey = key.getBytes();

byte[] result = new byte[encryptData.length];

- 14 -

result = DesEncrypt(bytekey, encryptData, 0); String deResult = new String(result); System.out.println(\

int dataLength = Integer.parseInt(deResult.substring(0, 4)); return deResult.substring(4, dataLength+4); }

(2)获取解密密钥。输入密钥,并且选择“显示”button,如图11所示。

图11输入密钥

public void onClick(View v) { }

key = QRStrEditText.getText().toString();

(3)获取到二维码解码后的字符串,并且根据key进行解密,输出密钥“key=12345678”。 public void handleDecode(Result result, Bitmap barcode) throws UnsupportedEncodingException { inactivityTimer.onActivity(); playBeepSoundAndVibrate();

String resultString = result.getText();

System.out.println(\String key = BarCodeTestActivity.getKey(); System.out.println(\

- 15 -

(4)处理扫描结果,如果密码正确,就在界面上显示,否则不显示。见图12。

图 12 密码检测程序

(5)调用DES程序对密钥key进行加密解密,并以Base64编码方式对结果字符串进行编码,输出加密后的字符串。 DES des= new DES(key);

byte[] encryptStrByte = Base64.decode(resultString); String decryptStr = des.decrypt(encryptStrByte); System.out.println(\

(6)本设计中代码生成的二维码经过扫描后得到的运行结果如图13与图14所示。图13是输入密钥并经过验证正确性通过后,选择open camera按钮,扫描二维码,并且经过该BarCodeTset.apk软件内部分析后,输出扫描到的二维码结果;图14则是输入错误的密码后,打开摄像机扫描二维码,但是界面没有任何变化 。

- 16 -

图13密码正确的运行结果 图14密码错误无运行结果

4.4 Android Camera的调用

在二维码的扫描过程中,对手机摄像头camera的调用可以说是重中之重,启用了多线程

对摄像头进行回调应用,如果一次回调的二维码图形没有成功识别,就开始下一次回调,直到识别出二维码编码为止。在设计中用initCamera()函数实现手机摄像头功能的开启。

将摄像头获取的正确的位图信息,以特定的算法对图像进行处理。经过图像预处理和定位点识别之后,识别出摄像头采集的图像含有的码图像,并且根据二维码的三个定位点将主体数据区域进行处理,将采集到的图片信息进行二值化操作,并将所得的数据发送给数据核心解码模块进行解析。

由于需要采集的二维码的大小不同,清晰度不同等诸多差异,手机的摄像头往往不能很好的采集图像,因此就要使摄像头进行自动对焦。当识别完成以后根据识别的结果,对用户进行提醒,通过二维码识别结果的成功或失败,让手机显示识别出来的结果,或者发出失败提示的声音。

5 系统调试及测试

5.1 系统调试

在程序的设计过程中,出现过很多语法错误,在程序运行时,进行程序正确性的检查从而发现错误,而这类的错误也是易于发现与解决的错误。还有很多逻辑错误则相对难以排查与解决,需要参考很多资料与相关文献解决问题。

5.2 系统测试

- 17 -

系统的测试是一项非常重要的步骤,是保证系统正确性的保证,系统中的各种错误也都需要通过测试来排查。但是测试的意义并不在于发现错误,而是让我们通过分析错误产生的原因与错误所在的程序部位,进而发现系统的缺陷与漏洞,最终完善系统。

5.3 测试结果

将具有Android系统的手机与电脑相连接,并且下载BarCodeTest.apk文件,安装该应用,并且打开,出现界面。之后手机就可以调用程序来调用摄像头来扫描生成的二维码,并进行识别。

5.4 测试阶段复审与评价

经过测试,表明该系统已基本达到预定的目标,符合需求分析阶段的全部能。总体而言,可以认为本系统基本功能已实现,可以投入运行。

- 18 -


计算机-基于DES算法的二维码扫描的实现(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:施工组织设计(纳黔高速连接线2)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: