基于位圖的數據隱藏方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種基于位圖的數據隱藏方法及裝置,屬于數據隱藏領域。所述方法包括:讀取位圖的數據區(qū),所述數據區(qū)存儲有所述位圖中各個像素點的顏色信息;將所述數據區(qū)中用于存儲顏色信息的各個字節(jié)中的部分二進制位所組成的空間作為數據存儲空間;將需要隱藏的數據寫入所述數據存儲空間中。本發(fā)明通過使用位圖本身的存儲數據位來存儲需要隱藏的數據,解決了目前利用圖像隱藏數據的方法會明顯增加圖像的數據量,且易被16進制編輯器直接發(fā)現尾部隱藏的數據的問題;達到了隱藏了數據后的圖像的數據量保持不變,且隱藏的數據不易被發(fā)現的效果。
【專利說明】基于位圖的數據隱藏方法及裝置
【技術領域】
[0001] 本發(fā)明涉及圖像處理領域,特別涉及一種基于位圖的數據隱藏方法及裝置。
【背景技術】
[0002] 數據隱藏技術是一種將秘密數據隱藏在其它媒體(如音頻、視頻、圖像)中的技 術。它通常以音頻、視頻或圖像中的一種作為載體,將秘密數據嵌入其中。數據隱藏的目的 在于保證隱藏的數據不引起人們的注意。
[0003] 目前,一種將數據隱藏于圖像中的方法為:直接在圖像尾部增加所要隱藏的數據, 此方法通過使用Windows內置的文件拷貝命令copy,即可直接完成。此時,該圖像被普通的 圖像顯示程序打開時,仍然會正常顯示。
[0004] 在實現本發(fā)明實施例的過程中,發(fā)明人發(fā)現上述技術至少存在以下問題:上述數 據隱藏技術雖然能夠起到隱藏數據的目的,但是,通過上述方法會使圖片的數據量明顯增 大,比如,原圖像的數據量是3MB,需要隱藏的數據的數據量是1MB,則隱藏數據后的圖像的 數據量為4MB。另外,上述隱藏數據后的圖像還容易被16進制編輯器直接發(fā)現尾部隱藏的 數據。
【發(fā)明內容】
[0005] 為了解決目前利用圖像隱藏數據的方法會明顯增加圖像大小,且易被16進制編 輯器直接發(fā)現尾部隱藏的數據的問題,本發(fā)明實施例提供了一種基于位圖的數據隱藏方 法。所述技術方案如下:
[0006] 根據本發(fā)明的一個方面,提供了一種基于位圖的數據隱藏方法,所述方法包括:
[0007] 讀取位圖的數據區(qū),所述數據區(qū)存儲有所述位圖中各個像素點的顏色信息;
[0008] 將所述數據區(qū)中用于存儲顏色信息的各個字節(jié)中的部分二進制位所組成的空間 作為數據存儲空間;
[0009] 將需要隱藏的數據寫入所述數據存儲空間中。
[0010] 可選的,所述將所述數據區(qū)中用于存儲顏色信息的各個字節(jié)中的部分二進制位所 組成的空間作為數據存儲空間之前,還包括:
[0011] 檢測所述數據區(qū)中用于存儲單個像素點的顏色信息的二進制位數是否達到預定 位數;
[0012] 如果用于存儲單個像素點的顏色信息的二進制位數達到所述預定位數,則執(zhí)行所 述將所述數據區(qū)中用于存儲顏色信息的各個字節(jié)中的部分二進制位所組成的空間作為數 據存儲空間的步驟。
[0013] 可選的,所述將所述數據區(qū)中用于存儲顏色信息的各個字節(jié)中的部分二進制位所 組成的空間作為數據存儲空間,包括:
[0014] 將所述數據區(qū)中用于存儲顏色信息的各個字節(jié)中從最高位開始的連續(xù)η位二進 制位所組成的空間作為數據存儲空間,η為正整數。
[0015] 可選的,所述將需要隱藏的數據寫入所述數據存儲空間中之后,還包括:
[0016] 檢測寫入所述數據后的位圖與未寫入所述數據的位圖之間的顏色差異程度是否 超過預定閾值;
[0017] 若檢測出所述顏色差異程度超過了所述預定閾值,則重新將所述數據區(qū)中用于存 儲顏色信息的各個字節(jié)中的n-1位二進制位所組成的空間作為數據存儲空間,并將所述需 要隱藏的數據寫入所述數據存儲空間。
[0018] 可選的,所述將需要隱藏的數據寫入所述數據存儲空間中之前,還包括:
[0019] 計算所述數據存儲空間的可存儲數據量;
[0020] 檢測所述需要隱藏的數據的數據量是否大于所述可存儲數據量;
[0021] 若檢測結果為所述需要隱藏的數據的數據量大于所述可存儲數據量,則根據所述 可存儲數據量從所述需要隱藏的數據中截取一部分數據作為在所述位圖中需要隱藏的數 據。
[0022] 根據本發(fā)明的第二方面,提供了一種基于位圖的數據隱藏裝置,所述裝置包括:
[0023] 數據讀取模塊,用于讀取位圖的數據區(qū),所述數據區(qū)存儲有所述位圖中各個像素 點的顏色信息;
[0024] 空間確定模塊,用于將所述數據讀取模塊讀取的所述數據區(qū)中用于存儲顏色信息 的各個字節(jié)中的部分二進制位所組成的空間作為數據存儲空間;
[0025] 數據寫入模塊,用于將需要隱藏的數據寫入所述空間確定模塊確定的所述數據存 儲空間中。
[0026] 可選的,所述裝置,還包括:
[0027] 位數檢測模塊,用于檢測所述數據讀取模塊讀取的所述數據區(qū)中用于存儲單個像 素點的顏色信息的二進制位數是否達到預定位數;
[0028] 所述空間確定模塊,用于如果所述位數檢測模塊的檢測結果為用于存儲單個像素 點的顏色信息的二進制位數達到所述預定位數,則執(zhí)行所述將所述數據區(qū)中用于存儲顏色 信息的各個字節(jié)中的部分二進制位所組成的空間作為數據存儲空間的步驟。
[0029] 可選的,所述空間確定模塊,用于將所述數據讀取模塊讀取的所述數據區(qū)中用于 存儲顏色信息的各個字節(jié)中從最高位開始的連續(xù)η位二進制位所組成的空間作為數據存 儲空間,η為正整數。
[0030] 可選的,所述裝置,還包括:差異檢測模塊和空間重確模塊;
[0031] 所述差異檢測模塊,用于檢測所述數據寫入模塊寫入所述數據后的位圖與未寫入 所述數據的位圖之間的顏色差異程度是否超過預定閾值;
[0032] 所述空間重確模塊,用于檢測出所述顏色差異程度超過了所述預定閾值時,重新 將所述數據讀取模塊讀取的所述數據區(qū)中用于存儲顏色信息的各個字節(jié)中的n-1個二進 制位所組成的空間作為數據存儲空間;再利用所述數據寫入模塊將所述需要隱藏的數據寫 入所述空間重確模塊確定的所述數據存儲空間中。
[0033] 可選的,所述裝置,還包括:容量計算模塊和容量檢測模塊;
[0034] 所述容量計算模塊,用于計算所述數據存儲空間的可存儲數據量;
[0035] 所述容量檢測模塊,用于檢測所述需要隱藏的數據的數據量是否大于所述可存儲 數據量;若檢測結果為所述需要隱藏的數據的數據量大于所述可存儲數據量,則根據所述 可存儲數據量從所述需要隱藏的數據中截取一部分數據作為在所述位圖中所述需要隱藏 的數據。
[0036] 本發(fā)明實施例提供的技術方案帶來的有益效果是:
[0037] 通過使用位圖本身的存儲數據位來存儲需要隱藏的數據,解決了目前利用圖像隱 藏數據的方法會明顯增加圖像的數據量,且易被16進制編輯器直接發(fā)現尾部隱藏的數據 的問題;達到了隱藏了數據后的圖像的數據量保持不變,且隱藏的數據不易被發(fā)現的效果。
【專利附圖】
【附圖說明】
[0038] 此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本發(fā)明的實施 例,并與說明書一起用于解釋本發(fā)明的原理。
[0039] 圖1是根據一示例性實施例示出的一種基于位圖的數據隱藏方法的方法流程圖;
[0040] 圖2A是根據另一示例性實施例示出的一種基于位圖的數據隱藏方法的方法流程 圖;
[0041] 圖2B是根據一示例性實施例示出的存儲空間示意圖;
[0042] 圖3是根據一示例性實施例示出的一種基于位圖的數據隱藏裝置的結構方框圖;
[0043] 圖4是根據另一示例性實施例示出的一種基于位圖的數據隱藏裝置的結構方框 圖;
[0044] 圖5是是根據一示例性實施例示出的終端或服務器的結構示意圖。
【具體實施方式】
[0045] 這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及 附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例 中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附 權利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
[0046] 本文中主要以隱藏數據的載體為位圖來舉例說明。
[0047] 位圖(bitmap)是一種使用像素點陣列來表示的圖像,比如320*240的位圖就包 括320行*240列的像素點陣列,共76800個像素點。其中,每個像素點的顏色信息可由灰 度值表示;也可以由RGB (Red Green Blue,紅綠藍)三個顏色信息的組合來表示;還可以由 ARGB(AlphaRed Green Blue,透明度-紅綠藍)四個顏色信息的組合來表示。
[0048] 在不同的位圖中,每個像素點的顏色信息在存儲時所需要使用的二進制位數可以 分為1、4、8、16、24及32位等,位數越多則顏色越豐富。相應地,位圖的數據量會越大。 [0049] 當一個像素點的顏色信息僅采用一個二進制位來表示時,因為一個二進制位只能 表示黑白兩種顏色,所以又稱之為二值位圖。
[0050] 當一個像素點的顏色信息采用24位RGB組合來表示時,由于紅色R采用8位二進 制位表示、綠色G采用8位二進制位表示、藍色B采用8位二進制,每種顏色取值范圍為0? 255,0代表明度最低,255代表明度最高,所以可以表示出各種顏色,稱之為真彩色位圖。
[0051] 當一個像素點的顏色信息采用32位ARGB組合來表示時,由于增加了一個透明度 A,A采用8位二進制位表示,取值范圍為0?255,0代表完全透明,255代表完全不透明,可 以更好地表示位圖。
[0052] 請參考圖1,其示出了本發(fā)明一個實施例所提供的基于位圖的數據隱藏方法的方 法流程圖。該方法可以用于終端中或服務器中,本實施例以該方法應用于終端中來舉例說 明。該方法可以包括如下幾個步驟:
[0053] 步驟101,讀取位圖的數據區(qū),數據區(qū)存儲有位圖中各個像素點的顏色信息;
[0054] 位圖的數據文件主要包括:文件頭、位圖信息頭和數據區(qū)等部分,位圖的數據區(qū) 存儲有位圖中每個像素點的顏色信息。
[0055] 步驟102,將數據區(qū)中用于存儲顏色信息的各個字節(jié)中的部分二進制位所組成的 空間作為數據存儲空間;
[0056] -個字節(jié)有著8位二進制數,部分二進制位可以是8位二進制數中的一部分。
[0057] 步驟103,將需要隱藏的數據寫入數據存儲空間中。
[0058] 綜上所述,本實施例提供的基于位圖的數據隱藏方法,通過使用位圖本身的存儲 數據位來存儲需要隱藏的數據,解決了目前利用圖像隱藏數據的方法會明顯增加圖像的數 據量,且易被16進制編輯器直接發(fā)現尾部隱藏的數據的問題;達到了隱藏了數據后的圖像 的數據量保持不變,且隱藏的數據不易被發(fā)現的效果。
[0059] 請參考圖2A,其示出了本發(fā)明另一實施例提供的基于位圖的數據隱藏方法的方法 流程圖。該方法可以用于終端中或服務器中,本實施例以該方法應用于終端中來舉例說明。 該方法可以包括如下幾個步驟:
[0060] 步驟201,讀取位圖的數據區(qū),數據區(qū)存儲有位圖中各個像素點的顏色信息;
[0061] 位圖的數據文件主要包括:文件頭、位圖信息頭和數據區(qū)等部分,位圖的數據區(qū) 存儲有位圖中每個像素點的顏色信息,終端可以讀取位圖中的這些信息。
[0062] 步驟202,檢測數據區(qū)中用于存儲單個像素點的顏色信息的二進制位數是否達到 預定位數;
[0063] 因為采用24位以下方式進行存儲的偽彩色位圖,數據區(qū)表示的并非實際像素點 的顏色信息,而是調色板索引值,不適于本實施例隱藏數據的方式且所能隱藏數據量太小, 故而本實施例中只使用24位及以上的真彩色位圖來隱藏數據。
[0064] 為此,終端在讀取到一個位圖的數據區(qū)之后,需要去檢測這個位圖的數據區(qū)中用 于存儲單個像素點的顏色信息的二進制位數是否達到預定位數。本實施例中以該預定位數 為24位來舉例說明。
[0065] 也即,對于位圖中的單個像素點的顏色信息,可能會采用1位、4位、8位、16位、24 位和32位等方式進行存儲。終端可以檢測當前位圖中的單個像素點的顏色信息是否采用 24位方式進行存儲或者32位方式進行存儲;如果當前位圖中的單個像素點的顏色信息采 用24位方式進行存儲或者32位方式進行存儲,則進入步驟203 ;如果當前位圖中的單個像 素點的顏色信息采用1位、4位、8位或者16位方式進行存儲,則終止流程。
[0066] 步驟203,如果用于存儲單個像素點的顏色信息的二進制位數達到預定位數,則將 數據區(qū)中用于存儲顏色信息的各個字節(jié)中的部分二進制位所組成的空間作為數據存儲空 間;
[0067] 終端在檢測出當前位圖為真彩色位圖后,終端將數據區(qū)中用于存儲顏色信息的各 個字節(jié)中從最高位開始的η個二進制位所組成的空間作為數據存儲空間,η為正整數。本 實施例中以η = 3來舉例說明。
[0068] 結合參考圖2B,設當前位圖中單個像素點的顏色信息采用24位RGB方式進行存 儲,則終端將每個顏色信息所占用8位字節(jié)中的前3位作為數據存儲空間。
[0069] 步驟204,計算數據存儲空間的可存儲數據量;
[0070] 以當前位圖的分辨率為X*Y為例,當前位圖包括X*Y個像素點,每個像素點包括3 個顏色信息,每個顏色信息抽取3位作為數據存儲空間,則該數據存儲空間的可存儲數據 量為:Χ*Υ*3*3/8字節(jié)。
[0071] 步驟205,檢測需要隱藏的數據的數據量是否大于可存儲數據量;
[0072] 然后終端檢測需要隱藏的數據的數據量是否大于數據存儲空間的可存儲數據量。 若檢測結果為大于,則進入步驟206 ;若檢測結果為不大于,則進入步驟207。
[0073] 步驟206,若檢測結果為所需要隱藏的數據的數據量大于可存儲數據量,則根據可 存儲數據量從需要隱藏的數據中截取一部分數據作為在位圖中需要隱藏的數據;
[0074] 若檢測結果為大于,則終端從需要隱藏的數據中截取一部分數據作為在位圖中需 要隱藏的數據,截取出的一部分數據的數據量大小等于或者小于可存儲數據量的大小。
[0075] 步驟207,將需要隱藏的數據寫入數據存儲空間。
[0076] 終端將需要隱藏的數據寫入數據存儲空間。本步驟可以包括如下子步驟:
[0077] 1、終端將數據存儲空間中的各個二進制位清零;
[0078] 2、終端將需要隱藏的數據按順序寫入數據存儲空間。
[0079] 綜上所述,本實施例提供的基于位圖的數據隱藏方法,通過使用位圖本身的存儲 數據位來存儲需要隱藏的數據,解決了目前利用圖像隱藏數據的方法會明顯增加圖像的數 據量,且易被16進制編輯器直接發(fā)現尾部隱藏的數據的問題;達到了隱藏了數據后的圖像 的數據量保持不變,且隱藏的數據不易被發(fā)現的效果。
[0080] 需要補充說明的是,通過上述方法將數據隱藏在位圖中后,位圖中部分像素點的 顏色會發(fā)生改變。通常來講,這種變化對于人眼來講并不明顯。但是如果這種變化非常明 顯,可以將上述實施例中的η位二進制位減少后重新確定數據存儲空間,比如減少為η-1位 后重新確定數據存儲空間。該過程可以由技術人員來執(zhí)行,也可以由終端來執(zhí)行。
[0081] 當上述過程由終端來執(zhí)行時,本實施例還優(yōu)選包括如下步驟:
[0082] 步驟208,檢測寫入數據后的位圖與未寫入數據的位圖之間的顏色差異程度是否 超過預定閾值;
[0083] 終端可以檢測寫入數據后的位圖與未寫入數據的位圖之間的顏色差異程度是否 超過預定閾值。
[0084] 終端在檢測兩個位圖之間的顏色差異程度時,一種檢測方法為利用RGB加權色差 公式檢測顏色差異,本實施例所用的RGB加權色差公式可以為:
[0085] D = Jwr(ri - η)2 + wg{gL - gj)2 + wb(bi - h^f
[0086] 其中D為顏色差異程度,、wg,wb為根據人眼對于紅、綠、藍三色敏感程度的不同 而定的加權系數,本實施例可以采用(3、4、2)作為此加權系數,其中為寫入數據后 位圖的像素點的R、G、B的值,gp h為寫入數據前位圖的像素點的R、G、B的值,用此公 式可以計算出每一個像素點顏色變化的色差值,之后可根據此色差值計算位圖的寫入數據 后整體改變的平均顏色差異程度;利用此公式計算最大顏色差異程度,即計算(〇、〇、〇)和 (255、255、255)兩點的色差值;本實施例可以以最大顏色差異程度的20%為預定閾值,即 如果平均顏色差異程度大于此預定閾值,則需要根據情況減小每個字節(jié)所占用的二進制位 數。
[0087] 步驟209,若檢測出顏色差異程度超過了預定閾值,則重新將數據區(qū)中用于存儲顏 色信息的各個字節(jié)中的n-1位二進制位所組成的空間作為數據存儲空間;
[0088] 終端重新將數據區(qū)中用于存儲顏色信息的各個字節(jié)中的n-1位二進制位所組成 的空間作為數據存儲空間。比如,η = 3,則終端將η減少為2位后,重新進入步驟204。又 比如,η = 2,則終端將η減少為1位后,重新進入步驟204。
[0089] 通過上述步驟208和步驟209,本實施例通過計算要隱藏的數據寫入圖片前后,圖 片色差的變化是否超過閾值;達到了在圖片變化不明顯的前提下,將數據隱藏到圖片中的 效果,進而減小了隱藏的數據被發(fā)現的幾率。
[0090] 還需要補充說明的是,本實施例在將需要隱藏的數據寫入數據存儲空間前,會可 以將需要隱藏的數據進行壓縮處理,對數據壓縮可以減小數據大小,增加本實施例所能隱 藏的數據量;如要隱藏的數據為文本格式或者Office格式等明碼格式,對其壓縮可以規(guī)避 敏感詞過濾;壓縮數據還可以使提取數據時更加方便。
[0091] 請參考圖3,其示出了本發(fā)明一個實施例提供的基于位圖的數據隱藏裝置的結構 方框圖。該基于位圖的數據隱藏裝置可以通過軟件、硬件或者兩者的結合成為終端或服務 器的全部或者一部分。該基于位圖的數據隱藏裝置,包括:
[0092] 數據讀取模塊310、空間確定模塊320、數據寫入模塊330 ;
[0093] 數據讀取模塊310,用于讀取位圖的數據區(qū),數據區(qū)存儲有位圖中各個像素點的顏 色信息;
[0094] 空間確定模塊320,用于將數據讀取模塊310讀取的數據區(qū)中用于存儲顏色信息 的各個字節(jié)中的部分二進制位所組成的空間作為數據存儲空間;
[0095] 數據寫入模塊330,用于將需要隱藏的數據寫入空間確定模塊320確定的數據存 儲空間中。
[0096] 綜上所述,本實施例提供的基于位圖的數據隱藏裝置,通過使用位圖本身的存儲 數據位來存儲需要隱藏的數據,解決了目前利用圖像隱藏數據的方法會明顯增加圖像的數 據量,且易被16進制編輯器直接發(fā)現尾部隱藏的數據的問題;達到了隱藏了數據后的圖像 的數據量保持不變,且隱藏的數據不易被發(fā)現的效果。
[0097] 請參考圖4,其示出了本發(fā)明另一個實施例提供的基于位圖的數據隱藏裝置的結 構方框圖。該基于位圖的數據隱藏裝置可以通過軟件、硬件或者兩者的結合成為終端或服 務器的全部或者一部分。該基于位圖的數據隱藏裝置包括:數據讀取模塊310、空間確定模 塊320、數據寫入模塊330 ;
[0098] 數據讀取模塊310,用于讀取位圖的數據區(qū),數據區(qū)存儲有位圖中各個像素點的顏 色信息;
[0099] 空間確定模塊320,用于將數據讀取模塊讀取的數據區(qū)中用于存儲顏色信息的各 個字節(jié)中的部分二進制位所組成的空間作為數據存儲空間;
[0100] 數據寫入模塊330,用于將需要隱藏的數據寫入空間確定模塊320確定的數據存 儲空間中,終端或服務器將需要隱藏的數據寫入數據存儲空間。
[0101] 可選地,數據寫入模塊330還包括:數據擦除單元332和數據寫入單元334 ;
[0102] 數據擦除單元332,用于將數據存儲空間中的各個二進制位清零;
[0103] 數據寫入單元334,用于將需要隱藏的數據按順序寫入數據存儲空間。
[0104] 可選的,所述裝置,還包括:
[0105] 位數檢測模塊340,用于檢測數據區(qū)中用于存儲單個像素點的顏色信息的二進制 位數是否達到預定位數;
[0106] 空間確定模塊320,用于如果位數檢測模塊340的檢測結果為用于存儲單個像素 點的顏色信息的二進制位數達到預定位數,則執(zhí)行將數據區(qū)中用于存儲顏色信息的各個字 節(jié)中的部分二進制位所組成的空間作為數據存儲空間的步驟。
[0107] 可選的,空間確定模塊320,用于將數據區(qū)中用于存儲顏色信息的各個字節(jié)中從最 高位開始的連續(xù)η位二進制位所組成的空間作為數據存儲空間,η為正整數。
[0108] 可選的,所述裝置,還包括:差異檢測模塊350和空間重確模塊360 ;
[0109] 差異檢測模塊350,用于檢測寫入數據后的位圖與未寫入數據的位圖之間的顏色 差異程度是否超過預定閾值;
[0110] 空間重確模塊360,用于檢測出顏色差異程度超過了預定閾值時,重新將數據讀取 模塊讀取的數據區(qū)中用于存儲顏色信息的各個字節(jié)中的η-1個二進制位所組成的空間作 為數據存儲空間;再利用數據寫入模塊330將需要隱藏的數據寫入空間重確模塊360確定 的數據存儲空間中。
[0111] 可選的,所述裝置,還包括:容量計算模塊370和容量檢測模塊380 ;
[0112] 容量計算模塊370,用于計算數據存儲空間的可存儲數據量;
[0113] 容量檢測模塊380,用于檢測需要隱藏的數據的數據量是否大于可存儲數據量; 若檢測結果為需要隱藏的數據的數據量大于可存儲數據量,則根據可存儲數據量從需要隱 藏的數據中截取一部分數據作為在位圖中需要隱藏的數據。
[0114] 綜上所述,本實施例提供的基于位圖的數據隱藏裝置,通過使用位圖本身的存儲 數據位來存儲需要隱藏的數據,解決了目前利用圖像隱藏數據的方法會明顯增加圖像的數 據量,且易被16進制編輯器直接發(fā)現尾部隱藏的數據的問題;達到了隱藏了數據后的圖像 的數據量保持不變,且隱藏的數據不易被發(fā)現的效果。
[0115] 需要補充說明的是,本實施例通過計算要隱藏的數據寫入圖片前后,圖片色差的 變化是否超過閾值;達到了在圖片變化不明顯的前提下,將數據隱藏到圖片中的效果,進而 減小了隱藏的數據被發(fā)現的幾率。
[0116] 需要補充說明的是,本實施例在將要隱藏的數據寫入數據存儲空間前,會對要隱 藏的數據進行壓縮處理,對數據壓縮可以減小數據大小,增加本實施例所能隱藏的數據量; 如要隱藏的數據為文本格式或者Office格式等明碼格式,對其壓縮可以規(guī)避敏感詞過濾; 壓縮數據還可以使提取數據時更加方便。
[0117] 請參考圖5,其示出了本發(fā)明一個實施例提供的終端或服務器的結構示意圖。終 端或服務器500包括中央處理單元(CPU) 501、包括隨機存取存儲器(RAM) 502和只讀存儲 器(ROM) 503的系統(tǒng)存儲器504,以及連接系統(tǒng)存儲器504和中央處理單元501的系統(tǒng)總線 505。終端或服務器500還包括幫助計算機內的各個器件之間傳輸信息的基本輸入/輸出 系統(tǒng)(I/O系統(tǒng))506,和用于存儲操作系統(tǒng)513、應用程序514和其他程序模塊515的大容 量存儲設備507。
[0118] 基本輸入/輸出系統(tǒng)506包括有用于顯不信息的顯不器508和用于用戶輸入信息 的諸如鼠標、鍵盤之類的輸入設備509。其中顯示器508和輸入設備509都通過連接到系統(tǒng) 總線505的輸入輸出控制器510連接到中央處理單元501?;据斎?輸出系統(tǒng)506還可 以包括輸入輸出控制器510以用于接收和處理來自鍵盤、鼠標、或電子觸控筆等多個其他 設備的輸入。類似地,輸入輸出控制器510還提供輸出到顯示屏、打印機或其他類型的輸出 設備。
[0119] 大容量存儲設備507通過連接到系統(tǒng)總線505的大容量存儲控制器(未示出)連 接到中央處理單元501。大容量存儲設備507及其相關聯的計算機可讀介質為終端或服務 器500提供非易失性存儲。也就是說,大容量存儲設備507可以包括諸如硬盤或者CD-ROM 驅動器之類的計算機可讀介質(未示出)。
[0120] 不失一般性,所述計算機可讀介質可以包括計算機存儲介質和通信介質。計算機 存儲介質包括以用于存儲諸如計算機可讀指令、數據結構、程序模塊或其他數據等信息的 任何方法或技術實現的易失性和非易失性、可移動和不可移動介質。計算機存儲介質包括 RAM、ROM、EPROM、EEPR0M、閃存或其他固態(tài)存儲其技術,CD-ROM、DVD或其他光學存儲、磁帶 盒、磁帶、磁盤存儲或其他磁性存儲設備。當然,本領域技術人員可知所述計算機存儲介質 不局限于上述幾種。上述的系統(tǒng)存儲器504和大容量存儲設備507可以統(tǒng)稱為存儲器。
[0121] 根據本發(fā)明的各種實施例,終端或服務器500還可以通過諸如因特網等網絡連接 到網絡上的遠程計算機運行。也即終端或服務器500可以通過連接在系統(tǒng)總線505上的網 絡接口單元511連接到網絡512,或者說,也可以使用網絡接口單元511來連接到其他類型 的網絡或遠程計算機系統(tǒng)(未示出)。
[0122] 所述存儲器還包括一個或者一個以上的程序,所述一個或者一個以上程序存儲于 存儲器中,所述一個或者一個以上程序包含用于進行本發(fā)明實施例提供的基于位圖的數據 隱藏方法的指令。
[0123] 上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0124] 本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬件 來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀 存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
[0125] 以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和 原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
【權利要求】
1. 一種基于位圖的數據隱藏方法,其特征在于,所述方法包括: 讀取位圖的數據區(qū),所述數據區(qū)存儲有所述位圖中各個像素點的顏色信息; 將所述數據區(qū)中用于存儲顏色信息的各個字節(jié)中的部分二進制位所組成的空間作為 數據存儲空間; 將需要隱藏的數據寫入所述數據存儲空間中。
2. 根據權利要求1所述的方法,其特征在于,所述將所述數據區(qū)中用于存儲顏色信息 的各個字節(jié)中的部分二進制位所組成的空間作為數據存儲空間之前,還包括: 檢測所述數據區(qū)中用于存儲單個像素點的顏色信息的二進制位數是否達到預定位 數; 如果用于存儲單個像素點的顏色信息的二進制位數達到所述預定位數,則執(zhí)行所述將 所述數據區(qū)中用于存儲顏色信息的各個字節(jié)中的部分二進制位所組成的空間作為數據存 儲空間的步驟。
3. 根據權利要求1所述的方法,其特征在于,所述將所述數據區(qū)中用于存儲顏色信息 的各個字節(jié)中的部分二進制位所組成的空間作為數據存儲空間,包括: 將所述數據區(qū)中用于存儲顏色信息的各個字節(jié)中從最高位開始的連續(xù)η位二進制位 所組成的空間作為數據存儲空間,η為正整數。
4. 根據權利要求3所述的方法,其特征在于,所述將需要隱藏的數據寫入所述數據存 儲空間中之后,還包括: 檢測寫入所述數據后的位圖與未寫入所述數據的位圖之間的顏色差異程度是否超過 預定閾值; 若檢測出所述顏色差異程度超過了所述預定閾值,則重新將所述數據區(qū)中用于存儲顏 色信息的各個字節(jié)中從最高位開始的連續(xù)η-1位二進制位所組成的空間作為數據存儲空 間,并將所述需要隱藏的數據寫入所述數據存儲空間。
5. 根據權利要求1至4任一所述的方法,其特征在于,所述將需要隱藏的數據寫入所述 數據存儲空間中之前,還包括: 計算所述數據存儲空間的可存儲數據量; 檢測所述需要隱藏的數據的數據量是否大于所述可存儲數據量; 若檢測結果為所述需要隱藏的數據的數據量大于所述可存儲數據量,則根據所述可存 儲數據量從所述需要隱藏的數據中截取一部分數據作為在所述位圖中需要隱藏的數據。
6. -種基于位圖的數據隱藏裝置,其特征在于,所述裝置包括: 數據讀取模塊,用于讀取位圖的數據區(qū),所述數據區(qū)存儲有所述位圖中各個像素點的 顏色信息; 空間確定模塊,用于將所述數據讀取模塊讀取的所述數據區(qū)中用于存儲顏色信息的各 個字節(jié)中的部分二進制位所組成的空間作為數據存儲空間; 數據寫入模塊,用于將需要隱藏的數據寫入所述空間確定模塊確定的所述數據存儲空 間中。
7. 根據權利要求6所述的裝置,其特征在于,所述裝置,還包括: 位數檢測模塊,用于檢測所述數據讀取模塊讀取的所述數據區(qū)中用于存儲單個像素點 的顏色信息的二進制位數是否達到預定位數; 所述空間確定模塊,用于如果所述位數檢測模塊的檢測結果為用于存儲單個像素點的 顏色信息的二進制位數達到所述預定位數,則執(zhí)行所述將所述數據區(qū)中用于存儲顏色信息 的各個字節(jié)中的部分二進制位所組成的空間作為數據存儲空間的步驟。
8. 根據權利要求6所述的裝置,其特征在于, 所述空間確定模塊,將所述數據區(qū)中用于存儲顏色信息的各個字節(jié)中從最高位開始的 連續(xù)η位二進制位所組成的空間作為數據存儲空間,η為正整數。
9. 根據權利要求8所述的裝置,其特征在于,所述裝置,還包括:差異檢測模塊和空間 重確模塊; 所述差異檢測模塊,用于檢測所述數據寫入模塊寫入所述數據后的位圖與未寫入所述 數據的位圖之間的顏色差異程度是否超過預定閾值; 所述空間重確模塊,用于檢測出所述顏色差異程度超過了所述預定閾值時,重新將所 述數據讀取模塊讀取的所述數據區(qū)中用于存儲顏色信息的各個字節(jié)中從最高位開始的的 連續(xù)η-1個二進制位所組成的空間作為數據存儲空間;再利用所述數據寫入模塊將所述需 要隱藏的數據寫入所述空間重確模塊確定的所述數據存儲空間中。
10. 根據權利要求6至9任一所述的裝置,其特征在于,所述裝置,還包括:容量計算模 塊和容量檢測模塊; 所述容量計算模塊,用于計算所述數據存儲空間的可存儲數據量; 所述容量檢測模塊,用于檢測所述需要隱藏的數據的數據量是否大于所述可存儲數據 量;若檢測結果為所述需要隱藏的數據的數據量大于所述可存儲數據量,則根據所述可存 儲數據量從所述需要隱藏的數據中截取一部分數據作為在所述位圖中所述需要隱藏的數 據。
【文檔編號】G06F21/60GK104112100SQ201410299236
【公開日】2014年10月22日 申請日期:2014年6月26日 優(yōu)先權日:2014年6月26日
【發(fā)明者】余瑩 申請人:廣州華多網絡科技有限公司