国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種Java軟件水印的嵌入方法

      文檔序號(hào):6514588閱讀:295來源:國知局
      一種Java軟件水印的嵌入方法
      【專利摘要】一種Java軟件水印的嵌入方法,包括水印嵌入:將水印信息按設(shè)定的規(guī)則進(jìn)行編碼,形成水印字符串;調(diào)用軟件中具備共同特征的n個(gè)數(shù)據(jù),并對(duì)所述數(shù)據(jù)按1至n進(jìn)行編號(hào);將所述水印字符串分為n組,分別按所述編號(hào)順序依次與所述n個(gè)數(shù)據(jù)一一建立唯一對(duì)應(yīng)的映射關(guān)系,形成一個(gè)碼本文件;和水印提?。赫{(diào)用軟件中所述具備共同特征的n個(gè)數(shù)據(jù);對(duì)照所述碼本文件,將所述每個(gè)數(shù)據(jù)所對(duì)應(yīng)的各組字符串取出,并按其編號(hào)順序拼接成水印字符串;根據(jù)設(shè)定的規(guī)則將所述水印字符串譯碼,得到水印信息。有益效果為:該方法嵌入和提取水印的過程除程序中的方法名外不涉及任何具體的程序代碼,隱蔽性強(qiáng),可以抵抗多種常見的針對(duì)軟件水印的攻擊。
      【專利說明】—種Java軟件水印的嵌入方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及軟件版權(quán)的保護(hù),尤其涉及一種Java軟件水印的嵌入方法。
      【背景技術(shù)】
      [0002]軟件產(chǎn)業(yè)近年來迅猛發(fā)展,成為每年具有數(shù)千億產(chǎn)值的重大產(chǎn)業(yè)。與此同時(shí),軟件產(chǎn)品的非法復(fù)制和盜用問題也變得非常嚴(yán)重,受到業(yè)內(nèi)外廣泛關(guān)注。如何保護(hù)軟件產(chǎn)品的知識(shí)產(chǎn)權(quán),防止軟件被非法復(fù)制和盜用,是信息安全領(lǐng)域的一個(gè)重要研究課題。軟件水印是近年來出現(xiàn)的保護(hù)軟件產(chǎn)品知識(shí)產(chǎn)權(quán)的一項(xiàng)技術(shù),它在不影響軟件功能的前提下在軟件作品中嵌入版權(quán)保護(hù)信息或身份認(rèn)證信息(即水印),當(dāng)程序遭到非法復(fù)制或盜用時(shí),可以通過提取這些信息來證明軟件作品的所有權(quán)。
      [0003]目前,在各種軟件產(chǎn)品中,用Java語言開發(fā)的軟件占有很大的比重。Java語言具有跨平臺(tái)的可移植性,使用便利,同時(shí)也帶來程序容易被復(fù)制和盜用的問題。一些開發(fā)者可以在自己開發(fā)的程序中未經(jīng)授權(quán)地使用他人開發(fā)的類文件,也可以通過反編譯,從類文件獲得源文件,學(xué)習(xí)他人解決某個(gè)問題的方法。因此,研究和開發(fā)用于Java語言軟件版權(quán)保護(hù)的軟件水印技術(shù)具有十分重要的現(xiàn)實(shí)意義和應(yīng)用價(jià)值。

      【發(fā)明內(nèi)容】

      [0004]本發(fā)明目的在于克服以上現(xiàn)有技術(shù)之不足,提供一種Java軟件水印的嵌入方法,具體由以下技術(shù)方案實(shí)現(xiàn):
      所述Java軟件水印的嵌入方法包括水印的嵌入和水印的提取,其中:
      水印嵌入包括:
      將水印信息按設(shè)定的規(guī)則進(jìn)行編碼,形成水印字符串;
      調(diào)用軟件中具備共同特征的η個(gè)數(shù)據(jù),并對(duì)所述數(shù)據(jù)按I至η進(jìn)行編號(hào);
      將所述水印字符串分為η組,分別按所述編號(hào)順序依次與所述η個(gè)數(shù)據(jù)一一建立唯一對(duì)應(yīng)的映射關(guān)系,形成一個(gè)碼本文件;
      水印提取包括:
      調(diào)用軟件中所述具備共同特征的η個(gè)數(shù)據(jù);
      對(duì)照所述碼本文件,將所述每個(gè)數(shù)據(jù)所對(duì)應(yīng)的各組字符串取出,并按其編號(hào)順序拼接成水印字符串;
      根據(jù)設(shè)定的規(guī)則將所述水印字符串譯碼,得到水印信息。
      [0005]所述軟件水印的嵌入及提取方法的進(jìn)一步設(shè)計(jì)在于,所述設(shè)定的規(guī)則為:若水印信息為中文,將水印信息按GBK編碼標(biāo)準(zhǔn)轉(zhuǎn)變成連續(xù)的O、I字符串;若水印信息為英文,將水印信息按ASCII編碼標(biāo)準(zhǔn)轉(zhuǎn)變成連續(xù)的O、I字符串。
      [0006]所述軟件水印的嵌入及提取方法的進(jìn)一步設(shè)計(jì)在于,所述具備共同特征的數(shù)據(jù)為軟件中的函數(shù)方法名。
      [0007]所述軟件水印的嵌入及提取方法的進(jìn)一步設(shè)計(jì)在于,所述調(diào)用具備共同特征的數(shù)據(jù)是利用Java反射機(jī)制解析出需要保護(hù)的程序中的所述函數(shù)方法名,并把所述方法名存儲(chǔ)在一個(gè)數(shù)組中。
      [0008]本發(fā)明提出的上述基于方法名編碼的Java軟件水印的嵌入及提取方法對(duì)所保護(hù)的程序不添加任何代碼,具有絕對(duì)的隱蔽性,不會(huì)被察覺和發(fā)現(xiàn),同時(shí)對(duì)原程序的運(yùn)行不會(huì)
      產(chǎn)生絲毫影響。[0009]該方法嵌入和提取水印的過程除程序中的方法名外不涉及任何具體的程序代碼,可以抵抗多種常見的針對(duì)軟件水印的攻擊,包括語義變換攻擊、代碼增減攻擊、統(tǒng)計(jì)分析攻擊和單步跟蹤調(diào)試攻擊等。因?yàn)榍度胨『蟪绦虿⑽窗l(fā)生任何變化,還是原來的程序,通過程序運(yùn)行統(tǒng)計(jì)分析或單步跟蹤調(diào)試,不可能發(fā)現(xiàn)水印的痕跡。在嵌有水印的程序中增加或減少代碼對(duì)方法名沒有影響,因而不會(huì)影響水印的提取。對(duì)程序進(jìn)行語義變換有可能會(huì)改變程序中某些方法的先后順序。對(duì)此,每個(gè)方法名對(duì)應(yīng)的編碼給一個(gè)編號(hào),提取水印時(shí)按照編號(hào)順序來拼接0、1串,不受獲取的方法名順序的影響。因此,語義變換攻擊對(duì)本方法也不起作用。
      【具體實(shí)施方式】
      [0010]下面結(jié)合該實(shí)施例對(duì)本發(fā)明方案進(jìn)行詳細(xì)說明。
      [0011]本發(fā)明提供的Java軟件水印的嵌入方法,涉及 水印的嵌入
      包括:將水印信息按設(shè)定的規(guī)則進(jìn)行編碼,形成水印字符串。
      [0012]調(diào)用軟件中具備共同特征的數(shù)據(jù)η個(gè),并對(duì)數(shù)據(jù)按I至η進(jìn)行編號(hào)。
      [0013]將水印字符串分為η組,并將其與對(duì)應(yīng)編號(hào)的數(shù)據(jù)建立唯一對(duì)應(yīng)的映射關(guān)系,形成一個(gè)碼本文件。
      [0014]水印的提取
      包括:調(diào)用軟件中具備共同特征的數(shù)據(jù);
      對(duì)照碼本文件,將I至η號(hào)的數(shù)據(jù)所對(duì)應(yīng)的字符串取出,并按其編號(hào)順序拼接成水印字符串;
      根據(jù)設(shè)定的規(guī)則將水印字符串譯碼,得到水印信息。
      [0015]上述對(duì)水印信息編碼過程中設(shè)定的規(guī)則為:若嵌入的水印信息為中文,將水印信息按GBK編碼標(biāo)準(zhǔn)轉(zhuǎn)變成連續(xù)的0、1字符串;若嵌入的水印信息為英文,將水印信息按ASCII編碼標(biāo)準(zhǔn)轉(zhuǎn)變成連續(xù)的O、I字符串。本實(shí)施例以嵌入中文水印信息為例,采用GBK編碼標(biāo)準(zhǔn)。
      [0016]按GBK編碼標(biāo)準(zhǔn)將水印信息轉(zhuǎn)變成連續(xù)的0、1串的實(shí)現(xiàn)代碼如下:
      【權(quán)利要求】
      1.一種Java軟件水印的嵌入方法,其特征在于包括水印的嵌入和水印的提取,其中 所述水印嵌入包括: 將水印信息按設(shè)定的規(guī)則進(jìn)行編碼,形成水印字符串; 調(diào)用軟件中具備共同特征的η個(gè)數(shù)據(jù),并對(duì)所述數(shù)據(jù)按I至η進(jìn)行編號(hào); 將所述水印字符串分為η組,分別按所述編號(hào)順序依次與所述η個(gè)數(shù)據(jù)一一建立唯一對(duì)應(yīng)的映射關(guān)系,形成一個(gè)碼本文件; 所述水印提取包括: 調(diào)用軟件中所述具備共同特征的η個(gè)數(shù)據(jù); 對(duì)照所述碼本文件,將所述每個(gè)數(shù)據(jù)所對(duì)應(yīng)的各組字符串取出,并按其編號(hào)順序拼接成水印字符串; 根據(jù)設(shè)定的規(guī)則將所述水印字符串譯碼,得到水印信息。
      2.根據(jù)權(quán)利要求1所述的一種Java軟件水印的嵌入方法,其特征在于,所述設(shè)定的規(guī)則為:若水印信息為中文,將水印信息按GBK編碼標(biāo)準(zhǔn)轉(zhuǎn)變成連續(xù)的O、I字符串;若水印信息為英文,將水印信息按ASCII編碼標(biāo)準(zhǔn)轉(zhuǎn)變成連續(xù)的O、I字符串。
      3.根據(jù)權(quán)利要求1所述的一種Java軟件水印的嵌入方法,其特征在于,所述具備共同特征的數(shù)據(jù)為軟件中的函數(shù)方法名。
      4.根據(jù)權(quán)利要求2所述的一種Java軟件水印的嵌入方法,其特征在于,所述調(diào)用具備共同特征的數(shù)據(jù)是利用Java反射機(jī)制解析出需要保護(hù)的程序中的所述函數(shù)方法名,并把所述方法名存儲(chǔ)在一個(gè)數(shù)組中。
      【文檔編號(hào)】G06F21/16GK103530536SQ201310464154
      【公開日】2014年1月22日 申請(qǐng)日期:2013年9月30日 優(yōu)先權(quán)日:2013年9月30日
      【發(fā)明者】陳建平, 李奎, 施佺, 王杰華, 邱建林, 李桂森 申請(qǐng)人:南通大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1