亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于WebService的加密算法

        2019-09-10 06:22:15徐彤
        現(xiàn)代信息科技 2019年2期
        關(guān)鍵詞:加密算法

        摘 要:由于當(dāng)今Web服務(wù)存在多種數(shù)據(jù)傳輸格式,不同的數(shù)據(jù)格式所需存儲(chǔ)方法的實(shí)現(xiàn)代碼存在差異,因此迫切地希望提高代碼的彈性,以適應(yīng)未來(lái)的各種數(shù)據(jù)格式。本文簡(jiǎn)單介紹了Web服務(wù),RESTful和參數(shù)傳遞,進(jìn)一步提高了代碼的彈性,并以“秘密情書(shū)”為例著重介紹了兩種加密算法,利用其對(duì)明文進(jìn)行加密,降低泄露的可能性,保證信息的安全和可靠。

        關(guān)鍵詞:Web Service;RESTful;加密算法;參數(shù)傳遞

        中圖分類(lèi)號(hào):TP393.09 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2019)02-0100-03

        Abstract:Based on the existence of multiple data transmission formats in today’s Web services,different data formats require differences in the implementation code of storage methods. Therefore,it is urgent to improve the flexibility of the code to adapt to various data formats in the future. This article briefly introduces Web services,RESTful and parameter transfer,further improving the flexibility of the code,and introduces two encryption algorithms with a case column “secret love letter” to use it to encrypt plaintext and reduce the possibility of leakage. Ensure the safety and reliability of information.

        Keywords:Web Service;RESTful;encryption algorithm;parameter transfer

        0 引 言

        隨著互聯(lián)網(wǎng)時(shí)代的發(fā)展,不同信息系統(tǒng)之間交互的數(shù)據(jù)格式存在差異,如果每次修改存儲(chǔ)方法的實(shí)現(xiàn)代碼,就使得代碼的彈性不夠,無(wú)法很好適應(yīng)未來(lái)的Content-type,Mine-type和Media-type等各種類(lèi)型格式,因此一種更有彈性的同樣可以實(shí)現(xiàn)該需求的代碼編寫(xiě)被提了出來(lái),這也是利用Web Service的方便之處。除此之外,在互聯(lián)網(wǎng)上傳遞信息有時(shí)候是很不安全的,一旦我們的信息被不法人員截獲,其便可以輕松了解信息的內(nèi)容,所以,在此提出了兩種加密算法在傳輸過(guò)程中對(duì)信息進(jìn)行加密,接收方對(duì)信息進(jìn)行解密后,便可以獲得信息的準(zhǔn)確內(nèi)容。

        1 Web服務(wù)的概念

        在談到Web服務(wù)前,我先對(duì)服務(wù)進(jìn)行簡(jiǎn)單介紹。計(jì)算機(jī)中的服務(wù)是指某個(gè)具體功能。提供計(jì)算1+1=2的功能是一種服務(wù);提供翻譯功能是一種服務(wù);根據(jù)你輸入的圓的半徑幫你畫(huà)一個(gè)圓也是一種服務(wù);更不用說(shuō)常使用到的外賣(mài)服務(wù)、地圖服務(wù)和交通服務(wù)等等。那么什么是Web服務(wù)呢?Web服務(wù)就是指使用http或https協(xié)議接受用戶的請(qǐng)求并提供功能服務(wù)的方式。平時(shí)中一個(gè)常見(jiàn)的Web服務(wù)例子,用戶在谷歌瀏覽器的地址欄中輸入http://www.baidu.com之后(按Enter鍵),瀏覽器顯示“百度搜索”這個(gè)搜索引擎。為什么我會(huì)將其理解為Web服務(wù)呢?因?yàn)槭紫冗@個(gè)服務(wù)是基于http協(xié)議的,然后,在從地址欄輸入U(xiǎn)RI到顯示“百度搜索”這整個(gè)過(guò)程是輸入U(xiǎn)RI之后(按Enter鍵),瀏覽器客戶端將http://www.baidu.com請(qǐng)求發(fā)送到服務(wù)器,請(qǐng)求服務(wù)器響應(yīng),服務(wù)器對(duì)這個(gè)請(qǐng)求進(jìn)行解析,發(fā)現(xiàn)存在一個(gè)服務(wù)可以滿足這個(gè)請(qǐng)求,之后便將其對(duì)應(yīng)的html文件發(fā)送到客戶端顯示出來(lái)。

        2 RESTful的概念

        REST的全稱(chēng)是Representational State Transfer,直譯為表述性狀態(tài)轉(zhuǎn)移。REST在2000年被Roy Fielding提出,是一種利用萬(wàn)維網(wǎng)的相關(guān)技術(shù)以及協(xié)議來(lái)構(gòu)建大規(guī)模網(wǎng)絡(luò)軟件的構(gòu)架方式。REST意在說(shuō)明,數(shù)據(jù)資源是可以被定義,被發(fā)布的,并且在此基礎(chǔ)上將信息的交換變得簡(jiǎn)單并具有可擴(kuò)展性。RESTful=REST+ful,既具有REST特征的設(shè)計(jì)風(fēng)格。

        3 API簡(jiǎn)單參數(shù)傳遞

        這里提到的簡(jiǎn)單參數(shù)是指非結(jié)構(gòu)化的參數(shù),如一個(gè)數(shù)值、一個(gè)字符串這樣的用簡(jiǎn)單變量進(jìn)行接受處理的參數(shù)。

        簡(jiǎn)單參數(shù)傳遞可以選擇兩種方式傳遞:(1)附加在路徑上,表觀現(xiàn)象如真實(shí)的資源路徑無(wú)差異。(2)附加在資源路徑的之后,按照標(biāo)準(zhǔn)的值對(duì)鏈條進(jìn)行傳參。前者稱(chēng)為@PathParam注解傳參,后者稱(chēng)之為@QueryParam注解傳參。

        3.1 @PathParam注解

        路徑傳參,就參數(shù)傳遞的形式而言是將參數(shù)嵌入到路徑中,并從表觀形態(tài)上與資源實(shí)體所對(duì)應(yīng)的路徑具有不可區(qū)分性。@PathParam語(yǔ)法形式:@PathParam(“路徑中的參數(shù)名”)parameterType parameterName。在@PathParam中配置參數(shù)模板:@Path(“/path1/.../pathk/.../pathn”),示例:@Path(“/path/{name}/a/{age}/{gender}/myfile”)。在Class方法的參數(shù)列表中為相關(guān)參數(shù)配置@PathParam標(biāo)注,進(jìn)行參數(shù)賦值,示例:public String testPath(@Path Param(“age”) int age,@PathParam(“name”) String name,@PathParam(“gender”) String gender)。

        @Path與@PathParam注解聯(lián)合工作原理:當(dāng)用戶請(qǐng)求路徑http://127.0.0.1/restful/test/path/張三/a/23/男/myfile時(shí),請(qǐng)求路徑與容器內(nèi)注冊(cè)模板進(jìn)行匹配,發(fā)現(xiàn)@PathParam(“/path/{name}/a/{age}/{gender}/myfile”)匹配成功,接著進(jìn)行路徑參數(shù)解析,將name賦值為張三,age賦值為23,gender賦值為男,方法體代碼正確執(zhí)行后通過(guò)@Produces標(biāo)注返回給用戶的結(jié)果。

        3.2 @QueryParam注解

        Query是指URL中由“問(wèn)號(hào)”引導(dǎo)出的值對(duì)參數(shù)鏈條。Query傳參形式:http://host:port/path?Param1=value1&...&paramn=valuen。

        @QueryParam語(yǔ)法形式:@QueryParam(“路徑中的參數(shù)名”) parameterType parameterName。在Class方法的參數(shù)列表中為相關(guān)參數(shù)配置@QueryParam標(biāo)注,進(jìn)行參數(shù)賦值,示例:public String testQuery(@QueryParam (“age”) int age,@QueryParam(“name”) String name,@QueryParam(“gender”) String gender)。

        @QueryParam注解工作原理:當(dāng)用戶請(qǐng)求路徑http: //127.0.0.1/restful/test/query?name=張三&age=23& gender=男,請(qǐng)求路徑與容器內(nèi)注冊(cè)模板進(jìn)行匹配,發(fā)現(xiàn)public String testQuery(@QueryParam(“age”) int age,@QueryParam(“name”) String name,@QueryParam (“gender”) String gender)匹配成功,接著進(jìn)行路徑參數(shù)解析,將name賦值為張三,age賦值為23,gender賦值為男,方法體代碼正確執(zhí)行后通過(guò)@Produces標(biāo)注返回給用戶的結(jié)果。

        4 Form表單參數(shù)傳遞

        Form表單是一個(gè)容器,可將容器內(nèi)的對(duì)象集合組織成參數(shù)集合,并向服務(wù)器發(fā)送這些參數(shù)。該容器內(nèi)的常見(jiàn)可用于參數(shù)傳遞的對(duì)象如:input,select,textarea等。@Form語(yǔ)法:@Form parameterType parameterName。在Class方法中用法,示例:public String testForm(@Form FormRequestValues form)。與@Form匹配的parameterType類(lèi):需要在類(lèi)的每個(gè)屬性前加一個(gè)@FormParam注解,注解中填入表單中控件的name屬性值。

        5 加密算法

        在這個(gè)過(guò)程中,我簡(jiǎn)單介紹一個(gè)信息交互過(guò)程“秘密的情書(shū)”,如圖1所示。

        5.1 算法A

        Cipher1結(jié)構(gòu):C1,R1,C2,R2,…,Cn,Rn。Cipher1實(shí)例:72,01,75,02,74,03,73,04,其中Ci和Ri為ASCII的16進(jìn)制形式,各自表示一個(gè)字節(jié)從Cipher1中獲取key的各組成字節(jié):keyBytes[i]=(Ci xor Ri);從Cipher1中獲取key的示例:keyBytes[0]=(72 xor 01);keyBytes[1]=

        (75 xor 02);keyBytes[2]=(74 xor 03);keyBytes[3] =(73 xor 04);key=new String(keyBytes),下面給出實(shí)現(xiàn)代碼。

        public static String getCipherKey(@Form Step1 step1) {

        String secret=step1.getSecret().trim();

        byte[] keyBytes=new byte[secret.length() / 4];

        int k=0;

        for (int i = 0; i < secret.length(); i += 4) {

        String temp1 = secret.substring(i, i + 2);

        byte ci = (byte) Integer.parseInt(temp1, 16);

        String temp2 = secret.substring(i + 2, i + 4);

        byte ri = (byte) Integer.parseInt(temp2, 16);

        keyBytes[k++] = (byte) (ci ^ ri);

        }

        String key = new String(keyBytes);

        return key;

        }

        5.2 算法B

        明文結(jié)構(gòu):T1,T2,T3,T4,…,Tn-1,Tn,密鑰結(jié)構(gòu):K1,K2,K3,K4,K5,K6,K7,將key視為明文,將自己的學(xué)號(hào)視為密鑰,調(diào)用算法B,混合生成newKey:newKey[i]=(Ti xor Ki);注意:當(dāng)Km從為密鑰最后一個(gè)字節(jié)時(shí),Km+1=K0,Km+2=K1,即密鑰將重新從自己的首字節(jié)開(kāi)始與明文按字節(jié)進(jìn)行xor運(yùn)算,直至計(jì)算完明文的最后一個(gè)字節(jié)為止。張華在得到newKey后,再次使用算法B加密自己的短消息,此時(shí)需要加密的短消息為明文,newKey為密鑰,算法不變。注意在這個(gè)算法中,還將引入隨機(jī)數(shù)。利用Java中的getBytes[]方法獲取學(xué)號(hào)和明文的byte數(shù)組,接著生成隨機(jī)數(shù),將學(xué)號(hào)和明文的數(shù)組元素和隨機(jī)數(shù)進(jìn)行異或,將異或的結(jié)果和隨機(jī)數(shù)作為最后newKey的結(jié)果。

        public static String createCipherKey(@Form Step2 step2) {

        String mingwen = step2.getMingwen().trim();

        String number = step2.getNumber().trim();

        byte[] mw = mingwen.getBytes();

        byte[] xuehao = number.getBytes();

        String str = "";

        for (int i = 0; i < mw.length; i++) {

        byte temp1 = mw[i];

        byte temp2 = xuehao[i % xuehao.length];

        int ran = (int) (Math.random() * 256);

        int temp = temp1 ^ temp2 ^ ran;

        String ranHexString = Integer.toHexString(ran);

        if (ranHexString.length() < 2)

        ranHexString = "0" + ranHexString;

        String tempHexString = Integer.toHexString (temp);

        if (tempHexString.length() < 2)

        tempHexString = "0" + tempHexString;

        str = str + ranHexString + tempHexString;

        }

        return str;

        }

        6 結(jié) 論

        計(jì)算機(jī)網(wǎng)絡(luò)和Web技術(shù)的高速發(fā)展,為人們提供了便利,但隨之而來(lái)的是信息的安全問(wèn)題,為此有必要以一種高效的算法對(duì)信息進(jìn)行加密,防止不法分子對(duì)信息進(jìn)行解密或讓其付出慘重代價(jià),以此保證信息的安全性。在此,僅僅提出一個(gè)簡(jiǎn)單的加密模型,在后期隨著知識(shí)的積累將對(duì)其進(jìn)一步改進(jìn)。

        參考文獻(xiàn):

        [1] 韓陸.Java RESTful Web Service實(shí)戰(zhàn)(第二版) [D].北京:機(jī)械工業(yè)出版社,2018.

        [2] 潘運(yùn)平,王勝男,王曉川.基于WebService的整車(chē)物流管理信息系統(tǒng)研究 [J].武漢理工大學(xué)學(xué)報(bào)(信息與管理工程版),2013,35(5):710-713.

        作者簡(jiǎn)介:徐彤(1998.12-),男,江西鷹潭人,本科,主要研究方向:軟件工程理論與方法。

        猜你喜歡
        加密算法
        基于整數(shù)矩陣乘法的圖像加密算法
        電子制作(2019年9期)2019-05-30 09:41:58
        基于混沌系統(tǒng)和DNA編碼的量子圖像加密算法
        混沌參數(shù)調(diào)制下RSA數(shù)據(jù)加密算法研究
        基于單圖像局部置亂和動(dòng)態(tài)反饋擴(kuò)散的混沌圖像加密算法
        HES:一種更小公鑰的同態(tài)加密算法
        基于小波變換和混沌映射的圖像加密算法
        基于顯著像素復(fù)合矩陣的多圖像同步實(shí)時(shí)加密算法
        Hill加密算法的改進(jìn)
        快速置亂耦合3D混沌映射的圖像加密算法研究
        對(duì)稱(chēng)加密算法RC5的架構(gòu)設(shè)計(jì)與電路實(shí)現(xiàn)
        亚洲a∨无码精品色午夜| 亚洲青青草视频在线播放| 美女被搞在线观看一区二区三区 | 中文字幕无码高清一区二区三区| 日韩午夜三级在线视频| 亚洲中文无码av永久| 日本牲交大片免费观看| 久久精品无码一区二区三区不 | 亚洲女同高清精品一区二区99| 亚洲人成在线播放网站| 无码少妇一区二区浪潮av| 亚洲日韩精品久久久久久| 国产偷国产偷亚洲高清| 亚洲色一区二区三区四区| 免费无码黄动漫在线观看| 无码Av在线一区二区三区| 国产av一区二区日夜精品剧情| 久久亚洲精品国产亚洲老地址| 亚洲av中文无码乱人伦在线r▽| 免青青草免费观看视频在线| 亚洲一区二区自偷自拍另类| 亚洲性久久久影院| 国产精品久久久久久久久鸭 | 国产三级精品三级国产| 色婷婷av一区二区三区不卡| 曰韩少妇内射免费播放| 精品久久久久久久久久中文字幕 | 超短裙老师在线观看一区二区| 蜜臀一区二区三区精品| 日本不卡一区二区三区在线| 中文乱码字幕高清在线观看| 大陆少妇一区二区三区| 久久午夜无码鲁丝片午夜精品| 无码中文字幕在线DVD| 日本女优中文字幕四季视频网站 | 欧美自拍视频在线| 给我播放的视频在线观看 | 成人无码α片在线观看不卡| 亚洲免费看三级黄网站| 国产人妻鲁鲁一区二区| 99久久国产露脸精品竹菊传媒|