[發明專利]一種Java軟件水印的嵌入方法有效
| 申請號: | 201310464154.1 | 申請日: | 2013-09-30 |
| 公開(公告)號: | CN103530536A | 公開(公告)日: | 2014-01-22 |
| 發明(設計)人: | 陳建平;李奎;施佺;王杰華;邱建林;李桂森 | 申請(專利權)人: | 南通大學 |
| 主分類號: | G06F21/16 | 分類號: | G06F21/16 |
| 代理公司: | 南京匯盛專利商標事務所(普通合伙) 32238 | 代理人: | 吳靜安 |
| 地址: | 226019 江蘇省南*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 java 軟件 水印 嵌入 方法 | ||
技術領域
本發明涉及軟件版權的保護,尤其涉及一種Java軟件水印的嵌入方法。
背景技術
軟件產業近年來迅猛發展,成為每年具有數千億產值的重大產業。與此同時,軟件產品的非法復制和盜用問題也變得非常嚴重,受到業內外廣泛關注。如何保護軟件產品的知識產權,防止軟件被非法復制和盜用,是信息安全領域的一個重要研究課題。軟件水印是近年來出現的保護軟件產品知識產權的一項技術,它在不影響軟件功能的前提下在軟件作品中嵌入版權保護信息或身份認證信息(即水印),當程序遭到非法復制或盜用時,可以通過提取這些信息來證明軟件作品的所有權。
目前,在各種軟件產品中,用Java語言開發的軟件占有很大的比重。Java語言具有跨平臺的可移植性,使用便利,同時也帶來程序容易被復制和盜用的問題。一些開發者可以在自己開發的程序中未經授權地使用他人開發的類文件,也可以通過反編譯,從類文件獲得源文件,學習他人解決某個問題的方法。因此,研究和開發用于Java語言軟件版權保護的軟件水印技術具有十分重要的現實意義和應用價值。
發明內容
本發明目的在于克服以上現有技術之不足,提供一種Java軟件水印的嵌入方法,具體由以下技術方案實現:
???所述Java軟件水印的嵌入方法包括水印的嵌入和水印的提取,其中:?
水印嵌入包括:
將水印信息按設定的規則進行編碼,形成水印字符串;
調用軟件中具備共同特征的n個數據,并對所述數據按1至n進行編號;
將所述水印字符串分為n組,分別按所述編號順序依次與所述n個數據一一建立唯一對應的映射關系,形成一個碼本文件;
水印提取包括:
調用軟件中所述具備共同特征的n個數據;
對照所述碼本文件,將所述每個數據所對應的各組字符串取出,并按其編號順序拼接成水印字符串;
根據設定的規則將所述水印字符串譯碼,得到水印信息。
所述軟件水印的嵌入及提取方法的進一步設計在于,所述設定的規則為:若水印信息為中文,將水印信息按GBK編碼標準轉變成連續的0、1字符串;若水印信息為英文,將水印信息按ASCII編碼標準轉變成連續的0、1字符串。
所述軟件水印的嵌入及提取方法的進一步設計在于,所述具備共同特征的數據為軟件中的函數方法名。
所述軟件水印的嵌入及提取方法的進一步設計在于,所述調用具備共同特征的數據是利用Java反射機制解析出需要保護的程序中的所述函數方法名,并把所述方法名存儲在一個數組中。
本發明提出的上述基于方法名編碼的Java軟件水印的嵌入及提取方法對所保護的程序不添加任何代碼,具有絕對的隱蔽性,不會被察覺和發現,同時對原程序的運行不會產生絲毫影響。
該方法嵌入和提取水印的過程除程序中的方法名外不涉及任何具體的程序代碼,可以抵抗多種常見的針對軟件水印的攻擊,包括語義變換攻擊、代碼增減攻擊、統計分析攻擊和單步跟蹤調試攻擊等。因為嵌入水印后程序并未發生任何變化,還是原來的程序,通過程序運行統計分析或單步跟蹤調試,不可能發現水印的痕跡。在嵌有水印的程序中增加或減少代碼對方法名沒有影響,因而不會影響水印的提取。對程序進行語義變換有可能會改變程序中某些方法的先后順序。對此,每個方法名對應的編碼給一個編號,提取水印時按照編號順序來拼接0、1串,不受獲取的方法名順序的影響。因此,語義變換攻擊對本方法也不起作用。
具體實施方式
下面結合該實施例對本發明方案進行詳細說明。
本發明提供的Java軟件水印的嵌入方法,涉及?
水印的嵌入
包括:將水印信息按設定的規則進行編碼,形成水印字符串。
調用軟件中具備共同特征的數據n個,并對數據按1至n進行編號。
將水印字符串分為n組,并將其與對應編號的數據建立唯一對應的映射關系,形成一個碼本文件。
水印的提取
包括:調用軟件中具備共同特征的數據;
對照碼本文件,將1至n號的數據所對應的字符串取出,并按其編號順序拼接成水印字符串;
根據設定的規則將水印字符串譯碼,得到水印信息。
上述對水印信息編碼過程中設定的規則為:若嵌入的水印信息為中文,將水印信息按GBK編碼標準轉變成連續的0、1字符串;若嵌入的水印信息為英文,將水印信息按ASCII編碼標準轉變成連續的0、1字符串。本實施例以嵌入中文水印信息為例,采用GBK編碼標準。
按GBK編碼標準將水印信息轉變成連續的0、1串的實現代碼如下:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南通大學,未經南通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310464154.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:光擴散膜
- 下一篇:一種環保低煙阻燃ABS類樹脂及其制備方法





