Ⅰ LSB信息隱藏C語言代碼問題
>for(j=64;j<(64+i*8);j++) //為什麼是從抄64開始??????
這個我猜是因為點陣圖文件頭包含一些很重要的信息,為避免修改而跳過這段內存;
>第二個問題是a[j]=a[j]>>1; //逐位獲取文字的二進制代碼 這句話怎麼理解?
for(k=0;k<8;k++){ }這個循環體內是對文字每個位元組的8bit信息逐位讀出。
t=a[j]&0x01; 這一句是讀出8個bit的最低位。
a[j]=a[j]>>1; //這句是讀完之後右移一位,高位清零,低位的第二bit移到第一bit,繼續循環讀取下一位。循環8次以完成從低到高的8bit的讀取。
通過j*k次循環,先將文字轉換成二進制數據,然後一位一位的存儲在圖像的LSB中。
LSB水印演算法比較簡單的一種演算法,極易被各種圖形處理破壞,屬於易損水印。