• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            軟件規(guī)模度量

            做世界上最好的代碼行統(tǒng)計(jì)工具

            以前做的一些小玩意兒(一)

            無聊啊,陸續(xù)把以前做的一些小玩意兒共享一下。由于時(shí)間比較長了,那時(shí)候設(shè)計(jì)能力有限,現(xiàn)在也沒時(shí)間維護(hù),如果發(fā)現(xiàn)bug就別用了,望體諒。

            第一個(gè)是叫Secret Bitmap,程序大小88k。下載鏈接:http://files.cppblog.com/bobquain/SecretBitmap_V1.2.1_CN_Setup.zip
            以前在CSDN的下載:http://download.csdn.net/source/182295



            Secret Bitmap

            在位圖中隱藏信息


            1. 介紹

            首先對(duì)在位圖中隱藏信息的原理做一下簡單的介紹:

                我以24位位圖為例(24位位圖即用24位來表示一個(gè)像素點(diǎn)顏色的位圖),因?yàn)榫湍壳皝碇v用24位位圖來隱藏信息是最安全的。大家都知道,世界上任何一種顏色都可以用紅,綠,藍(lán)以不同比例調(diào)和出來,這三種顏色也通常被人們稱為三原色。24位色即用8位來表示紅色,8位來表示綠色,8位來表示藍(lán)色。8位即一個(gè)字節(jié),用十進(jìn)制表示的話,最小值為0,最大值為255。我們通常知道,(0,0,0)表示黑色,(255,255,255)表示白色,(255,0,0)表示紅色等等。24位色最大可表示2的24次方(即16,777,216)種顏色,這已經(jīng)超出了人類肉眼可以分辨的顏色。舉個(gè)例子:人類的肉眼幾乎無法分辨白色(255,255,255)和(254,254,254)之間的區(qū)別,255表示為二進(jìn)制是11111111,而254表示為二進(jìn)制為11111110;其他顏色同理,如果只改變其三原色每個(gè)字節(jié)中的最后一位的話,人類的肉眼幾乎無法分辨。這樣一來,我們就可以利用每個(gè)像素(3個(gè)字節(jié))中每個(gè)字節(jié)的最后一位來存儲(chǔ)一些額外的信息,并且不會(huì)增加位圖文件的大小,這也就是用位圖來隱藏信息的原理。當(dāng)然,我們也可以多占用一些位來加大隱藏?cái)?shù)據(jù)的信息量,但是這樣也就更容易被人類的肉眼所察覺。但是,請(qǐng)大家注意,利用位圖隱藏信息僅僅是一種欺騙,并非什么加密技術(shù),如果需要更安全的保護(hù)還需要和加密技術(shù)搭配使用。

                此款工具在同類工具中的優(yōu)點(diǎn)是:提供密碼加密,數(shù)據(jù)加密和隱藏位數(shù)的選擇。在占用位數(shù)過多的情況下,比較容易被別人看出位圖的瑕疵(如果有原圖作為參考會(huì)更容易),也就可以懷疑該位圖中隱藏了信息。但是,即使這樣也沒有關(guān)系,所有隱藏的數(shù)據(jù)在隱藏之前已經(jīng)經(jīng)過了加密,并且有密碼的保護(hù),即使有人分析出了數(shù)據(jù),也需要進(jìn)行解密。所以說它的安全性還是相當(dāng)高的。

                在人們的隱私越來越難保護(hù)的今天,也許你正需要它,也許...將來的某天會(huì)需要它。

            2. 如何使用

            Secret Bitmap的界面比較易懂,參照下圖做一下簡單介紹:

                1 位圖文件:原位圖文件。

                2 隱藏文件:需要被隱藏的文件

                3 密碼:加密用密碼輸入(采用MD5加密)。

                4 密碼確認(rèn):密碼確認(rèn)的輸入

                5 隱藏(帶面具):隱藏,點(diǎn)擊后打開保存文件的對(duì)話框,默認(rèn)保存名稱為原位圖的名稱。文件保存后,保存路徑會(huì)被記錄下來,下次實(shí)施隱藏時(shí)默認(rèn)打開上次的保存路徑。(數(shù)據(jù)加密算法...保密)

                6 占用位選擇:點(diǎn)擊黃色的鎖形圖案,可打開或關(guān)閉占用位。目前可以使用的占用位的數(shù)量為1,2或4。

                7 位圖文件:隱藏了信息的位圖文件

                8 密碼:解密用密碼輸入。

                9 反隱藏(摘掉面具):反隱藏,點(diǎn)擊后打開保存文件的對(duì)話框,默認(rèn)保存名稱為原隱藏文件的名稱。文件保存后,保存路徑會(huì)被記錄下來,下次實(shí)施反隱藏時(shí)默認(rèn)打開上次的保存路徑。

                10 日志:顯示錯(cuò)誤和隱藏/反隱藏的結(jié)果信息

            3. 改進(jìn)

            對(duì)比之前發(fā)布的V1.1.0版,V1.2.0主要的改進(jìn)如下:

                1 增加了托拽功能:用戶可以從Explorer中托拽文件到[Bitmap File]或[Hidden File]的編輯框中。

                2 去掉了指定輸出文件夾的功能,替換為直接打開保存文件對(duì)話框,使用戶更容易在保存文件時(shí)修改文件的名稱。

            V1.2.1的改進(jìn)如下:

                1 修正了顯示設(shè)定為非96DPI的情況下,占用位選擇的鎖形圖案顯示位置不正確的Bug。

            posted on 2012-03-10 17:59 bobquain 閱讀(1845) 評(píng)論(2)  編輯 收藏 引用

            Feedback

            # re: 以前做的一些小玩意兒(一) 2010-09-18 10:05 zuhd

            把這個(gè)代碼貼上來學(xué)習(xí)一下  回復(fù)  更多評(píng)論   

            # re: 以前做的一些小玩意兒(一) 2010-09-18 11:49 寶寶Kui

            @zuhd
            這種東西,里面除了隱藏,還涉及到數(shù)據(jù)的加密,公開源碼還有什么安全性可言呢。原理我已經(jīng)寫的很清楚了,界面太土了吧,這個(gè)也沒有學(xué)習(xí)的必要。BMP的格式,google一下就好了。不行的話,記得CodeProject還是CodeGuru來著,上面有一個(gè)有源代碼的。讀寫位的核心算法如下:
            ////////////////////////////////////////////////////////////////////
            // Read byte
            ////////////////////////////////////////////////////////////////////
            VOID ReadByte(UCHAR *pcHide, UCHAR *sHidBuf, UINT uBits)
            {
            for (int i = 0; i < 8; i++) {
            if (sHidBuf[i/uBits] & (0x01 << i%uBits))
            *pcHide |= (0x01 << i);
            else
            *pcHide &= ~(0x01 << i);
            }
            }

            ////////////////////////////////////////////////////////////////////
            // Write byte
            ////////////////////////////////////////////////////////////////////
            VOID WriteByte(UCHAR cHide, UCHAR *sHidBuf, UINT uBits)
            {
            for (int i = 0; i < 8; i++) {
            if (cHide & (0x01 << i))
            sHidBuf[i/uBits] |= (0x01 << i%uBits);
            else
            sHidBuf[i/uBits] &= ~(0x01 << i%uBits);
            }
            }

              回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            精品国产青草久久久久福利| 久久99精品国产| 精品久久久久成人码免费动漫| 久久福利资源国产精品999| 一本一道久久综合狠狠老| 精品久久香蕉国产线看观看亚洲| 久久精品国产精品国产精品污| 久久亚洲国产精品五月天婷| 亚洲va中文字幕无码久久不卡| 日本精品久久久中文字幕| 精品久久久久久国产三级 | 精品熟女少妇AV免费久久| 久久久久人妻一区精品性色av| 婷婷综合久久狠狠色99h| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 99久久精品国内| 久久亚洲AV成人无码| 亚洲精品高清国产一久久| 无码国产69精品久久久久网站| 国产综合免费精品久久久| 日产精品久久久久久久| 无码人妻少妇久久中文字幕 | 2021国内精品久久久久久影院| 久久国产精品无码一区二区三区| 久久夜色精品国产www| 亚洲国产精品久久久久| 婷婷五月深深久久精品| 久久久久久久精品妇女99| 久久久久国产成人精品亚洲午夜| 精品久久一区二区| 2020久久精品国产免费| 777午夜精品久久av蜜臀| 久久国产亚洲精品| 午夜精品久久久久久影视777| 国产午夜精品久久久久九九电影 | 亚洲美日韩Av中文字幕无码久久久妻妇 | 久久青青草原精品国产| 亚洲国产精品18久久久久久| 波多野结衣久久一区二区| 久久精品亚洲AV久久久无码| 伊人色综合久久天天人守人婷|