欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)加密方法、終端及服務器與流程

文檔序號:11691240閱讀:309來源:國知局
數(shù)據(jù)加密方法、終端及服務器與流程

本發(fā)明涉及數(shù)據(jù)加密技術(shù)領域,更具體地,涉及數(shù)據(jù)加密方法、終端及服務器。



背景技術(shù):

目前,為了保證數(shù)據(jù)傳輸?shù)陌踩?,一般會對原始?shù)據(jù)進行加密,得到加密數(shù)據(jù)后再進行傳輸。與此同時,隨著終端技術(shù)的飛速發(fā)展,操作系統(tǒng)的種類越來越多,常用的有windows、linux、unix、android、ios等等;為了滿足用戶各種各樣的需求,應用程序(application,app)的種類也越來越多。由于操作系統(tǒng)和app都呈現(xiàn)多樣化的發(fā)展,如何保證多操作系統(tǒng)多app之間的加密數(shù)據(jù)互通變得非常重要。

由于c++不僅擁有計算機高效運行的實用性特征,同時還致力于提高大規(guī)模程序的編程質(zhì)量與程序設計語言的問題描述能力?,F(xiàn)在絕大多數(shù)客戶端應用程序都是使用c++編程語言來開發(fā),同時也采用c++進行應用程序數(shù)據(jù)的加密。

然而,由于c++不是解釋性語言,在程序執(zhí)行之前,有一個單獨的編譯過程,將程序翻譯成機器語言。所以現(xiàn)有技術(shù)中利用c++進行客戶端應用程序中數(shù)據(jù)加密,并不方便技術(shù)人員隨時對于加密算法的修改。



技術(shù)實現(xiàn)要素:

本發(fā)明為克服上述問題或者至少部分地解決上述問題,提供數(shù)據(jù)加密方法、終端及服務器。

根據(jù)本發(fā)明的一個方面,提供一種數(shù)據(jù)加密方法,包括:

利用編譯語言編寫的程序接收利用解釋語言加密的數(shù)據(jù)和利用解釋語言編寫的數(shù)據(jù)解密腳本;利用所述解釋語言編寫的數(shù)據(jù)解密腳本在所述程序中對所述加密數(shù)據(jù)進行解密。

根據(jù)本發(fā)明的另一個方面,提供一種數(shù)據(jù)加密方法,包括:

利用解釋語言對待加密數(shù)據(jù)進行加密,得到加密后的數(shù)據(jù);利用解釋語言編寫數(shù)據(jù)解密腳本;

將所述利用解釋語言加密的數(shù)據(jù)和利用解釋語言編寫的數(shù)據(jù)解密腳本發(fā)送給利用編譯語言編寫的程序,以供所述利用編譯語言編寫的程序利用所述解釋語言編寫的數(shù)據(jù)解密腳本對所述加密數(shù)據(jù)進行解密。

根據(jù)本發(fā)明的又一個方面,提供一種數(shù)據(jù)加密終端,包括接收模塊與解密模塊:

所述接收模塊,用于控制利用編譯語言編寫的程序接收服務器發(fā)送來的利用解釋語言加密的數(shù)據(jù)和利用解釋語言編寫的數(shù)據(jù)解密腳本;

所述解密模塊,用于利用所述解釋語言編寫的數(shù)據(jù)解密腳本在所述程序中對所述加密數(shù)據(jù)進行解密。

根據(jù)本發(fā)明的又一個方面,提供一種數(shù)據(jù)加密服務器,包括加密模塊與發(fā)送模塊:

所述加密模塊,用于利用解釋語言加密待加密數(shù)據(jù),得到加密后的數(shù)據(jù);利用解釋語言編寫數(shù)據(jù)解密腳本;

所述發(fā)送模塊,用于將所述利用解釋語言加密的數(shù)據(jù)和利用解釋語言編寫的數(shù)據(jù)解密腳本發(fā)送給編譯語言編寫的程序,以供編譯語言編寫的程序利用所述解釋語言編寫的數(shù)據(jù)解密腳本在所述程序中對所述加密數(shù)據(jù)進行解密。

本申請?zhí)岢鰯?shù)據(jù)加密方法、終端及服務器,通過利用編譯語言編寫的程序接收利用解釋語言加密的數(shù)據(jù)和利用解釋語言編寫的數(shù)據(jù)解密腳本,基于所述解釋語言編寫的數(shù)據(jù)解密腳本,在所述程序中對所述加密數(shù)據(jù)進行解密的方法,實現(xiàn)對于數(shù)據(jù)的加密。相對于現(xiàn)有技術(shù)而言,本發(fā)明技術(shù)方案具有令使用者可以方便快速更換、修改數(shù)據(jù)加解密算法的有益效果。

附圖說明

圖1為根據(jù)本發(fā)明實施例一個具體實施例中一種數(shù)據(jù)加密方法整體流程示意圖;

圖2為根據(jù)本發(fā)明實施例一個具體實施例中一種數(shù)據(jù)加密方法整體流程示意圖;

圖3為根據(jù)本發(fā)明實施例一個具體實施例中一種數(shù)據(jù)加密終端流程示意圖;

圖4為根據(jù)本發(fā)明實施例一個具體實施例中一種數(shù)據(jù)加密終端整體框架示意圖;

圖5為根據(jù)本發(fā)明實施例一個具體實施例中一種數(shù)據(jù)加密服務器整體框架示意圖;

圖6為根據(jù)本發(fā)明實施例一個具體實施例中一種數(shù)據(jù)加密方法測試設備的整體框架示意圖。

具體實施方式

下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式作進一步詳細描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。

目前,為了保證數(shù)據(jù)傳輸?shù)陌踩?,一般會對原始?shù)據(jù)進行加密,得到加密數(shù)據(jù)后再進行傳輸。與此同時,隨著終端技術(shù)的飛速發(fā)展,操作系統(tǒng)的種類越來越多,常用的有windows、linux、unix、android、ios等等;為了滿足用戶各種各樣的需求,應用程序(application,app)的種類也越來越多。由于操作系統(tǒng)和app都呈現(xiàn)多樣化的發(fā)展,如何保證多操作系統(tǒng)多app之間的加密數(shù)據(jù)互通變得非常重要。

由于c++不僅擁有計算機高效運行的實用性特征,同時還致力于提高大規(guī)模程序的編程質(zhì)量與程序設計語言的問題描述能力?,F(xiàn)在絕大多數(shù)客戶端應用程序都是使用c++編程語言來開發(fā),同時也采用c++進行應用程序數(shù)據(jù)的加密。

然而,由于c++不是解釋性語言,在程序執(zhí)行之前,有一個單獨的編譯過程,將程序翻譯成機器語言。所以現(xiàn)有技術(shù)中利用c++進行客戶端應用程序中數(shù)據(jù)加密,并不方便技術(shù)人員隨時對于加密算法的修改。

而腳本語言是解釋性語言,更靈活,不需要重新編譯即可直接執(zhí)行其邏輯。所以腳本語言編寫好后通過其執(zhí)行引擎就可以直接執(zhí)行。所以更好的方案是使用c++編程語言來開發(fā)客戶端程序,同時將一些通常變動的功能來使用腳本語言開發(fā),帶來的好處是即實現(xiàn)了程序的高效,同時也具有更好的靈活性,因為腳本的變動不需要重新編譯程序。

如圖1,示出本發(fā)明一個具體實施例中一種數(shù)據(jù)加密方法整體流程示意圖。總體上,包括:步驟1,利用編譯語言編寫的程序接收利用解釋語言加密的數(shù)據(jù)和利用解釋語言編寫的數(shù)據(jù)解密腳本;步驟2,利用所述解釋語言編寫的數(shù)據(jù)解密腳本在所述程序中對所述加密數(shù)據(jù)進行解密。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密方法,所述解釋語言為javascript??梢岳斫鉃?,所述解釋語言不限于javascript,可以為任意一種解釋語言。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密方法,所述步驟2還包括:利用編譯語言編寫的程序中包含一個接口,所述接口用于基于接收到的數(shù)據(jù)解密腳本對服務器下發(fā)的加密數(shù)據(jù)進行解密。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密方法,所述接口還用于執(zhí)行以下步驟:

s21,創(chuàng)建一個句柄管理對象用來管理使用到的句柄;創(chuàng)建執(zhí)行腳本的上下文環(huán)境;

s22,將所述利用解釋語言編寫的數(shù)據(jù)解密腳本轉(zhuǎn)換為字符串;將所述字符串編譯成為解密程序;

s23,利用所述解密程序?qū)λ黾用軘?shù)據(jù)進行解密。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密方法,所述編譯語言為c++。可以理解為,所述編譯語言不限于c++,可以為任意一種編譯語言語言。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密方法,所述編譯語言編寫的程序內(nèi)包含v8javascript引擎。

如圖2,示出本發(fā)明一個具體實施例中一種數(shù)據(jù)加密方法整體流程示意圖??傮w上,包括:步驟1’,利用解釋語言對待加密數(shù)據(jù)進行加密,得到加密后的數(shù)據(jù);利用解釋語言編寫數(shù)據(jù)解密腳本;

步驟2’,將所述利用解釋語言加密的數(shù)據(jù)和利用解釋語言編寫的數(shù)據(jù)解密腳本發(fā)送給利用編譯語言編寫的程序,以供所述利用編譯語言編寫的程序利用所述解釋語言編寫的數(shù)據(jù)解密腳本對所述加密數(shù)據(jù)進行解密。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密方法,所述步驟2’還包括:利用編譯語言編寫的程序中包含一個接口,所述接口用于基于接收到的數(shù)據(jù)解密腳本對服務器下發(fā)的加密數(shù)據(jù)進行解密。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密方法,所述接口還用于執(zhí)行以下步驟:

s21’,創(chuàng)建一個句柄管理對象用來管理使用到的句柄;創(chuàng)建執(zhí)行腳本的上下文環(huán)境;

s22’,將所述利用解釋語言編寫的數(shù)據(jù)解密腳本轉(zhuǎn)換為字符串;將所述字符串編譯成為解密程序;

s23’,利用所述解密程序?qū)λ黾用軘?shù)據(jù)進行解密。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密方法,所述解釋語言為javascript??梢岳斫鉃?,所述解釋語言不限于javascript,可以為任意一種解釋語言。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密方法,所述編譯語言為c++??梢岳斫鉃?,所述編譯語言不限于c++,可以為任意一種編譯語言語言。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密方法,所述編譯語言編寫的程序內(nèi)包含v8javascript引擎。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密方法,所述方法具體包括如下步驟:

首先,客戶端集成v8javascript引擎。

考慮到代碼質(zhì)量和可控性選擇了google的開源javascript引擎作為客戶端的腳本引擎。通過下載v8的源代碼后,并在客戶端軟件代碼中集成v8的源代碼并一起進行編譯。至此:通過這個步驟就實現(xiàn)了在客戶端集成v8javascript腳本引擎。

然后,客戶端使用v8引擎編寫執(zhí)行javascript腳本的接口。

本文使用v8引擎來編寫執(zhí)行javascript腳本對數(shù)據(jù)進行解密的接口。這樣在收到服務器的數(shù)據(jù)后可以使用該接口來對服務器下發(fā)的數(shù)據(jù)進行解密。

1.首先定義一個接口stringjavadecodedata(stringdata,stringstrjvavscript)。

其中參數(shù)stringdata是服務器下發(fā)的加密的數(shù)據(jù)。

其中參數(shù)stringstrjvavscript是服務器下發(fā)的javascript腳本。

其中返回值則是解密后的數(shù)據(jù)。

2.編寫接口javadecodedata使用javascript來解密數(shù)據(jù)的功能。

(1)首先使用v8引擎的接口定義一個句柄管理對象用來管理使用到的句柄。

handlescopehandle_scope;

(2)創(chuàng)建一個javascript執(zhí)行腳本的上下文環(huán)境。

persistent<context>context=context::new();

(3)創(chuàng)建javascript腳本字符串對象。

handle<string>source=string::new(strjvavscript);

(4)編譯javascript腳本字符串位腳本對象。

handle<script>script=script::compile(source);

(5)執(zhí)行javascript腳本對象得到結(jié)果。

handle<value>result=script->run();

(6)將執(zhí)行結(jié)果轉(zhuǎn)換成字符串。

string::asciivalueascii(result);

至此通過這幾步操作則創(chuàng)建了一個可以執(zhí)行javascript腳本的接口函數(shù)。

其次,服務器編寫使用javascript腳本來對數(shù)據(jù)進行加密。

服務器對發(fā)送給客戶端的數(shù)據(jù)首先使用javascript進行加密后,再發(fā)送到客戶端。同時也將解密的javascript腳本發(fā)送給客戶端。本文使用了自己編寫的加解密算法來對數(shù)據(jù)進行加解密,該加解密算法使用自己編寫的算法的好處是防止從網(wǎng)上找的對應的開源的解密算法,同時自己編寫的加解密算法可以不斷的進行更換。具體實現(xiàn)如下:

首先編寫加密和解密的javascript腳本encodejavascript和decodejavascript,其中encodejavascript用于對數(shù)據(jù)進行加密,其中decodejavascript用于對數(shù)據(jù)進行解密。那么服務器下發(fā)到客戶端的數(shù)據(jù):stringclientdata=encodejavascript(srcdata)。

其中srcdata便是準備下發(fā)客戶端的原始數(shù)據(jù),clientdata則是經(jīng)過加密后最終下發(fā)給客戶端的數(shù)據(jù)。

最后通過網(wǎng)絡協(xié)議將加密后的數(shù)據(jù)和解密的decodejavascript腳本一起下發(fā)到客戶端。

至此:通過這一步則完成了客戶端數(shù)據(jù)的加密后發(fā)生給客戶端及數(shù)據(jù)解密腳本也一同發(fā)送到客戶端。

最后,客戶端收到服務器下發(fā)數(shù)據(jù)和javascript腳本解密數(shù)據(jù)。

客戶端在收到服務器下發(fā)的數(shù)據(jù)和javascript腳本后,使用客戶端編寫的接口函數(shù)javadecodedata來執(zhí)行服務器下發(fā)的javascript腳本來對服務器下發(fā)的數(shù)據(jù)進行解密。具體實現(xiàn)如下:

stringstrdecode=javadecodedata(clientdata,decodejavascript);

使用服務器下發(fā)的decodejavascript數(shù)據(jù)解密腳本來解密clientdata服務器下發(fā)的數(shù)據(jù)則得到了原始數(shù)據(jù)。

至此:通過這一步則完成了使用服務器下發(fā)的腳本來對服務器下發(fā)的數(shù)據(jù)進行解密操作。

如圖4,示出本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密終端整體架構(gòu)示意圖,包括接收模塊a1與解密模塊a2:

所述接收模塊a1,用于控制利用編譯語言編寫的程序接收服務器發(fā)送來的利用解釋語言加密的數(shù)據(jù)和利用解釋語言編寫的數(shù)據(jù)解密腳本;

所述解密模塊a2,用于利用所述解釋語言編寫的數(shù)據(jù)解密腳本在所述程序中對所述加密數(shù)據(jù)進行解密。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密終端,所述解釋語言為javascript。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密終端,所述編譯語言為c++。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密終端,所述編譯語言編寫的程序內(nèi)包含v8javascript引擎。

如圖5,示出本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密服務器整體架構(gòu)示意圖,包括加密模塊a1’與發(fā)送模塊a2’:

所述加密模塊a1’,用于利用解釋語言加密待加密數(shù)據(jù),得到加密后的數(shù)據(jù);利用解釋語言編寫數(shù)據(jù)解密腳本;

所述發(fā)送模塊a2’,用于將所述利用解釋語言加密的數(shù)據(jù)和利用解釋語言編寫的數(shù)據(jù)解密腳本發(fā)送給編譯語言編寫的程序,以供編譯語言編寫的程序利用所述解釋語言編寫的數(shù)據(jù)解密腳本在所述程序中對所述加密數(shù)據(jù)進行解密。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密服務器,所述解釋語言為javascript。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密服務器,所述編譯語言為c++。

本發(fā)明另一個具體實施例中一種數(shù)據(jù)加密服務器,所述編譯語言編寫的程序內(nèi)包含v8javascript引擎。

圖6是示出本申請實施例的數(shù)據(jù)加密方法的測試設備的結(jié)構(gòu)框圖。

參照圖6,所述數(shù)據(jù)加密方法的測試設備,包括:處理器(processor)601、存儲器(memory)602、通信接口(communicationsinterface)603和總線604;

其中,

所述處理器601、存儲器602、通信接口603通過所述總線604完成相互間的通信;

所述通信接口603用于該測試設備與數(shù)據(jù)加密方法的通信設備之間的信息傳輸;

所述處理器601用于調(diào)用所述存儲器602中的程序指令,以執(zhí)行上述各方法實施例所提供的方法,例如包括:利用編譯語言編寫的程序接收利用解釋語言加密的數(shù)據(jù)和利用解釋語言編寫的數(shù)據(jù)解密腳本;基于所述解釋語言編寫的數(shù)據(jù)解密腳本,在所述程序中對所述加密數(shù)據(jù)進行解密。

本實施例公開一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括存儲在非暫態(tài)計算機可讀存儲介質(zhì)上的計算機程序,所述計算機程序包括程序指令,當所述程序指令被計算機執(zhí)行時,計算機能夠執(zhí)行上述各方法實施例所提供的方法,例如包括:利用編譯語言編寫的程序接收利用解釋語言加密的數(shù)據(jù)和利用解釋語言編寫的數(shù)據(jù)解密腳本;基于所述解釋語言編寫的數(shù)據(jù)解密腳本,在所述程序中對所述加密數(shù)據(jù)進行解密。

本實施例提供一種非暫態(tài)計算機可讀存儲介質(zhì),所述非暫態(tài)計算機可讀存儲介質(zhì)存儲計算機指令,所述計算機指令使所述計算機執(zhí)行上述各方法實施例所提供的方法,例如包括:利用編譯語言編寫的程序接收利用解釋語言加密的數(shù)據(jù)和利用解釋語言編寫的數(shù)據(jù)解密腳本;基于所述解釋語言編寫的數(shù)據(jù)解密腳本,在所述程序中對所述加密數(shù)據(jù)進行解密。

本領域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

以上所描述的數(shù)據(jù)加密方法的測試設備等實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。

通過以上的實施方式的描述,本領域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。

最后,本申請的方法僅為較佳的實施方案,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
长丰县| 临澧县| 郸城县| 康定县| 绥滨县| 肇东市| 北京市| 乃东县| 南通市| 遵义市| 南涧| 喀喇沁旗| 合水县| 防城港市| 新闻| 洛南县| 永善县| 小金县| 界首市| 德惠市| 石林| 湘阴县| 长寿区| 太谷县| 四川省| 东安县| 宁南县| 盐源县| 九台市| 信阳市| 邓州市| 松阳县| 九寨沟县| 龙胜| 许昌市| 会宁县| 陆川县| 济宁市| 东阳市| 滕州市| 镇雄县|