999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于多語(yǔ)言的實(shí)用簡(jiǎn)易加解密算法的研究與實(shí)踐

2017-03-29 07:45:22李進(jìn)豪
現(xiàn)代計(jì)算機(jī) 2017年4期
關(guān)鍵詞:信息

李進(jìn)豪

(廣東省海洋工程職業(yè)技術(shù)學(xué)校,廣州 510320)

基于多語(yǔ)言的實(shí)用簡(jiǎn)易加解密算法的研究與實(shí)踐

李進(jìn)豪

(廣東省海洋工程職業(yè)技術(shù)學(xué)校,廣州 510320)

在實(shí)際項(xiàng)目開發(fā)中,常需要對(duì)一些關(guān)鍵信息進(jìn)行簡(jiǎn)單的加解密,以保證關(guān)鍵信息的保密性。基于實(shí)際工作項(xiàng)目和需求,重點(diǎn)探索基于多語(yǔ)言的實(shí)用簡(jiǎn)易加解密算法的構(gòu)建和可行性分析,并以實(shí)踐案例輔以佐證。

多語(yǔ)言;加密;解密;算法;案例

0 引言

加密,是以某種特殊的算法改變?cè)械男畔?shù)據(jù),使得未授權(quán)的用戶無法了解信息的內(nèi)容。加密的逆過程為解密,即將該加密信息轉(zhuǎn)化為原來的形式。本文主要根據(jù)筆者的實(shí)際工作項(xiàng)目和需求,重點(diǎn)探索基于多語(yǔ)言的實(shí)用簡(jiǎn)易加解密算法的構(gòu)建及應(yīng)用(適用范圍:ASCII碼取值范圍為[33,126])。

1 問題的提出

在實(shí)際項(xiàng)目開發(fā)中,我們常需要對(duì)一些關(guān)鍵信息進(jìn)行簡(jiǎn)單的加解密,以保證關(guān)鍵信息的保密性。如果這些關(guān)鍵信息屬于多系統(tǒng)共享訪問信息,將涉及多語(yǔ)言對(duì)同一信息進(jìn)行加解密。例:使用C#語(yǔ)言設(shè)計(jì)的題庫(kù)管理系統(tǒng)(參考答案屬于關(guān)鍵信息),根據(jù)要求發(fā)布試題后,一般情況下常在基于C#開發(fā)的考試系統(tǒng)中使用,但有時(shí)也會(huì)在基于VB.NET開發(fā)的環(huán)境下使用(兼容),也會(huì)在基于VBA開發(fā)的PPT或Word環(huán)境下使用,也會(huì)在基于ActionScript 3.0開發(fā)的Flash益智游戲中使用。因此,如何基于多語(yǔ)言設(shè)計(jì)一個(gè)簡(jiǎn)單實(shí)用的加解密算法,以適用實(shí)際工作需要,滿足某些特殊需求,是我們必須解決的問題之一。

2 一種簡(jiǎn)單實(shí)用的加解密算法

2.1 基本原理

(1)定義

●chr():將ASCII碼轉(zhuǎn)換為字符

●asc():將字符轉(zhuǎn)換為ASCII碼

●len():獲取字符串長(zhǎng)度

●mod:求余數(shù)

●abs():取絕對(duì)值

●mid(str,i,j):從字符串str的第i位開始,截取j位字符

●psstr:可變加密字符串(兩個(gè)字符以上,是加解密公式的關(guān)鍵信息,由用戶自定義)

●tm:特征信息(與加密信息相關(guān)的特征信息,可以自定義)

●xx:加密前的字符

●jm:加密后的字符

●i:加密字符串的順序位

●常量:n=6

●變量:k=i mod LEN(passtr)

●變量:passtrnum=Abs(Asc(Mid(passtr,K+1,1))-Asc(Mid(passtr,1,1)))Mod n

(2)加解密算法

加密:jm=Chr(Asc(xx)-(i Mod n)-(Len(tm)Mod n)-passtrnum)

解密:xx=Chr(Asc(xx)+(i Mod n)+(Len(tm)Mod n)+passtrnum)

適用范圍:ASCII碼取值范圍為[33,126],常用可打印的字符。

可變加密字符串(psstr):由用戶自定義,可存放文本文件中,一般在加密時(shí)自定義或由計(jì)算機(jī)自動(dòng)隨機(jī)產(chǎn)生,解密時(shí)需提供同樣的可變加密字符串。

2.2 算法的定義域與值域

(1)加密算法的定義域與值域

●定義域

根據(jù)算法的適用范圍,可知本算法的定義域?yàn)閇33,126]。

●值域

從加密算法的定義(n=6)可知,“i Mod 6”的值域?yàn)閇0,5],“Len(tm)Mod 6”的值域?yàn)閇0,5],passtrnum的值域?yàn)閇0,5],故運(yùn)算式(i Mod 6)+(Len(tm)Mod 6)+ passtrnum的值域?yàn)閇0,15]。

根據(jù)上述分析,加密算法“Asc(xx)-(i Mod 6)-(Len(tm)Mod 6)-passtrnum”的值域?yàn)閇18,126]。

(2)解密算法的定義域與值域

解密算法是加密算法的逆運(yùn)算,故加密算法的定義域?yàn)榻饷芩惴ǖ闹涤颍用芩惴ǖ闹涤驗(yàn)榻饷芩惴ǖ亩x域。根據(jù)分析可知,解密公式的定義域與值域是:

定義域:[18,126]

值域:[33,126]

(3)結(jié)論

根據(jù)上述討論,加密算法與解密算法的定義域與值域均在ASCII碼的有效范圍中,因此上述加解密算法是可行、有效的。絕大多數(shù)情況下,存儲(chǔ)時(shí)所有在ASCII碼有效范圍中的字符均可以直接保存,但若存在有特別存儲(chǔ)要求的文件格式,則需要經(jīng)過特殊處理。此外,如果需要加密的信息范圍較小且可知,但加密后的信息有特別要求,則可根據(jù)值域的要求,在加解密算法中加上一個(gè)常數(shù)mycon,以適應(yīng)實(shí)際需要。此時(shí),加解密算法變形為:

加密:jm=Chr(Asc(xx)-(i Mod n)-(Len(tm)Mod n)–passtrnum+mycon)

解密:xx=Chr(Asc(xx)+(i Mod n)+(Len(tm)Mod n)+passtrnum-mycon)

2.3 通用加解密程序

2.4 特殊應(yīng)用示例1

(1)應(yīng)用要求

參考答案(英文字母),存儲(chǔ)格式為XML文件。

(2)定義域與值域

●定義域:[65,122]

●值域:[50,122]

●說明:存在特殊字符“<”和“>”,需要使用替代字符“(”和“)”

(3)示例

tm=”中國(guó)近代史上第一個(gè)不平等條約是()”

passtr="66"

原信息:B

加密后信息:(

2.5 特殊應(yīng)用示例2

(1)應(yīng)用要求

以“日期+時(shí)間”命名的文件名(純數(shù)字),需要對(duì)該文件名進(jìn)行簡(jiǎn)單加解密。

(2)定義域與值域

使用加解密的變形算法,mycon取值為32。

●定義域:[48,57],對(duì)應(yīng)字符為0至9

●值域:[65,89]

●說明:值域的對(duì)應(yīng)字符為A至Y,可以滿足文件名命名的特殊需求

(3)示例

tm=”2016111601839710”

passtr="16ABC123XYZ"

原信息:2016111601839710

加密后信息:HFENHLJMEDOJPLJH

3 常用編程語(yǔ)言的實(shí)現(xiàn)技術(shù)

在上述算法中,基于多語(yǔ)言對(duì)信息進(jìn)行加解密,獲取字符串長(zhǎng)度、求余數(shù)、取絕對(duì)值、截取字符等,常有編程語(yǔ)言都有標(biāo)準(zhǔn)的函數(shù),限于篇幅關(guān)系,不作討論。下文主要討論算法中的核心運(yùn)算“字符與ASCII碼”的相互轉(zhuǎn)換(以字符“A”對(duì)應(yīng)的ASCII碼65為例,字符“A”的變量名為st,65的變量名stnum)。

3.1 C#

●字符轉(zhuǎn)換為ASCII碼:(int)st。

●ASCII碼轉(zhuǎn)換為字符:(char)stnum。

3.2 C++

●字符轉(zhuǎn)換為ASCII碼:(int)st。

●ASCII碼轉(zhuǎn)換為字符:(char)stnum。

3.3 VB.NET

●字符轉(zhuǎn)換為ASCII碼:Asc(st)。

●ASCII碼轉(zhuǎn)換為字符:Chr(stnum)。

3.4 VBA

●字符轉(zhuǎn)換為ASCII碼:Asc(st)。

●ASCII碼轉(zhuǎn)換為字符:Chr(stnum)。

3.5 Java

●字符轉(zhuǎn)換為ASCII碼:(int)st.getBytes()。

●ASCII碼轉(zhuǎn)換為字符:(char)stnum。

3.6 JavaScript

●字符轉(zhuǎn)換為ASCII碼:st.charCodeAt(0);

●ASCII碼轉(zhuǎn)換為字符:String.fromCharCode(stnum)。

3.7 ActionScript

●字符轉(zhuǎn)換為ASCII碼:st.charCodeAt(0);

●ASCII碼轉(zhuǎn)換為字符:String.fromCharCode(stnum)。

4 案例

4.1 需求分析

在基于C#開發(fā)的題庫(kù)管理系統(tǒng)中發(fā)布的試題(題型:判斷題、單選題、多選題),需要在Word環(huán)境下使用(VBA),同時(shí)也需要在Flash環(huán)境下使用(ActionScript 3.0)。考慮到通用性和拓展需要,發(fā)布的試題存儲(chǔ)格式為XML格式,因此發(fā)布時(shí)參考答案需要進(jìn)行簡(jiǎn)易的加密,使用時(shí)參考答案需要進(jìn)行解密。

4.2 基本原理

(1)定義域與值域

●定義域:[65,122],主要存儲(chǔ)26個(gè)英文母(大小寫字母均可,判斷題,“正確”用“A”表示,“錯(cuò)誤”用“B”表示)

●值域:[50,122]

●特別處理:在XML文件中,“<”和“>”是不可以直接存儲(chǔ)的字符,使用代替字符,“(”表示“<”,“)”表示“>”。

(2)基本原理

根據(jù)需求分析,本案例的基本原理如圖1所示。

圖1 基本原理

4.3 實(shí)現(xiàn)

(1)基于C#的通用示例性加密代碼

●通用示例性加密代碼

●信息的加密

加密前信息:A

加密后信息:6

●說明

本例是單選題,代碼中的循環(huán)基本上是沒有作用的,當(dāng)出現(xiàn)多選題時(shí),循環(huán)將實(shí)現(xiàn)多選答案的逐個(gè)加密(如表1所示)。奇數(shù)位與偶數(shù)位的加密算法略有差異,主要是為了提升加密的強(qiáng)度。

表1 多選題答案

(2)基于VBA的通用示例性解密代碼

●通用示例性解密代碼

●信息的解密

解密前信息:6

解密后信息:A

(3)基于ActionScript 3.0的通用示例性解密代碼

●通用示例性解密代碼

●信息的解密

解密前信息:6

解密后信息:A

5 結(jié)語(yǔ)

作為一種實(shí)用簡(jiǎn)易的加解密算法,考慮到通用性,文中n的取值偏小,加密后的字符范圍相對(duì)也較小。對(duì)于特定信息,n的取值可以適當(dāng)增大。文中提及的代碼全部在真實(shí)環(huán)境下測(cè)試通過,并應(yīng)用于實(shí)際工作中,應(yīng)用效果好。

[1]李進(jìn)豪等.課堂教學(xué)有效性的研究與實(shí)踐[J].第六屆全國(guó)農(nóng)業(yè)職業(yè)教育教學(xué)成果二等獎(jiǎng),2015.

[2]李進(jìn)豪.基于AES的教師教學(xué)能力提升的研究與實(shí)踐[J].2015年廣東省職協(xié)優(yōu)秀科研成果一等獎(jiǎng),2016.

Research and Practice of the Practical and Simple Encryption and Decryption Algorithm Based on Multi Languages

LI Jin-hao

(Guangdong Province Vocational School of Oceanographic Engineering,Guangzhou 510320)

In the actual project exploring,we often need to carry a simple encryption and decryption of some key information,in order to ensure the confidentiality of key information.Based on the actual work project and requirements,focuses on the construction and feasibility analysis of the practical and simple encryption and decryption algorithm based on multi languages,and provides the practical cases as supporting evidence.

Muti Languages;Encryption;Decryption;Algorithm;Case

1007-1423(2017)04-0048-05

10.3969/j.issn.1007-1423.2017.04.011

李進(jìn)豪(1969-),男,廣東汕頭人,碩士,高級(jí)講師,高級(jí)技師,研究方向?yàn)檐浖こ獭⒕W(wǎng)絡(luò)游戲開發(fā)

2016-12-06

2017-01-20

廣東省中等職業(yè)學(xué)校“百千萬人才培養(yǎng)工程”專業(yè)名師培養(yǎng)對(duì)象專項(xiàng)資金(2015-2017)、全國(guó)農(nóng)業(yè)職教育“十三五”科研課題(No.2016-135-Y-227)、2015廣東省教育研究院課題(No.GDJY-2015-F-b018)

猜你喜歡
信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會(huì)信息
信息超市
展會(huì)信息
展會(huì)信息
展會(huì)信息
展會(huì)信息
展會(huì)信息
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 亚洲视屏在线观看| 亚洲中文字幕23页在线| 中文字幕在线不卡视频| 国产成人精品视频一区视频二区| 免费99精品国产自在现线| 亚洲天堂在线视频| 在线看AV天堂| 欧美精品亚洲日韩a| 四虎成人免费毛片| 成人午夜网址| 亚洲欧美精品一中文字幕| 波多野结衣在线se| 免费中文字幕一级毛片| 91精品专区国产盗摄| 综合久久久久久久综合网| 在线观看网站国产| 亚洲综合经典在线一区二区| 欧美日韩国产高清一区二区三区| 免费播放毛片| 四虎影视8848永久精品| 国产亚洲精品在天天在线麻豆| 99视频在线精品免费观看6| 精品亚洲国产成人AV| 精品视频免费在线| 欧美精品高清| 蜜桃视频一区二区| 国产精品永久久久久| 黄色网站不卡无码| 动漫精品中文字幕无码| 亚洲第一色网站| 亚洲AV人人澡人人双人| 女人天堂av免费| 久久成人国产精品免费软件| 国产性生交xxxxx免费| 国产在线观看一区精品| 99这里精品| 播五月综合| 国产精品.com| 啪啪永久免费av| 无码国产偷倩在线播放老年人| 狠狠色婷婷丁香综合久久韩国| 亚洲伊人久久精品影院| 人妻一本久道久久综合久久鬼色| 2018日日摸夜夜添狠狠躁| 欧美.成人.综合在线| 亚洲av无码成人专区| 国产视频一二三区| 国产玖玖视频| 天天综合色网| 国产香蕉在线视频| 香蕉视频在线观看www| 国产成人喷潮在线观看| 国产精品爽爽va在线无码观看 | 国内精品视频在线| 香蕉久久国产精品免| 久久免费视频6| 国产精品欧美在线观看| 成人午夜网址| 国产精品久久久精品三级| 国产欧美日韩精品综合在线| 精品国产黑色丝袜高跟鞋| 国产欧美日韩精品综合在线| 亚洲成年人片| 999在线免费视频| 国模在线视频一区二区三区| 国产成年无码AⅤ片在线| 精品国产毛片| 99久久精品国产麻豆婷婷| 91午夜福利在线观看精品| 色综合五月婷婷| 久久99热66这里只有精品一| jizz国产视频| 国产亚洲精久久久久久久91| 99久久精品无码专区免费| 99热精品久久| 精品人妻无码中字系列| 精品無碼一區在線觀看 | 国产香蕉97碰碰视频VA碰碰看| 亚洲成A人V欧美综合| 国产精品99r8在线观看| 好吊妞欧美视频免费| 国产综合日韩另类一区二区|