青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Jiang's C++ Space

創(chuàng)作,也是一種學習的過程。

   :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::

我們?nèi)粘9ぷ髦薪?jīng)常要對一些東西進行加密,可選的加密方法當然很多了,Windows都自帶了加密庫,但密碼學方面的東西實在令我頭大,可能因為我從小學開始數(shù)學一直沒學好的緣故,而我仔細考慮之后發(fā)覺:我們對信息加密,不一定是出自于什么“top security”的原因,大多可能僅僅是不想讓用戶看到具體的文件的結(jié)構(gòu)或保護一些個人隱私信息,也就是說對安全的要求一般,沒必要引入太過重量級的東西,最好是非常快捷、高效和輕量的。那本文提供了一種方法,能讓你的信息看起來被很好地加過密了,并且你根本不需要去研究什么密碼學,也不需要引入什么龐大的Lib,因為代碼就那么幾行。

寫這個程序的時候其實我是想要這么一種加密方法:假如明文只有一個字節(jié),那加密出來的密文應該也只有一個字節(jié)。而實際上別人實現(xiàn)好的AES算法加密出來的密文通常都要帶上一串隨機數(shù),不太符合我的要求。

沒有什么include,沒有什么LIB,更沒有什么DLL,代碼再簡單不過,但我保證它很有效,OK,不多說了,看代碼:

#include "String.h"

//加密和解密,其實這兩個函數(shù)完全相同的,簡單起見嘛,另外我居然允許密碼為空,也是簡單起見
void JiangEncode(unsigned char *pBuff, int iBuffLen, char *pKey=NULL, int iKeyLen=0);
void JiangDecode(unsigned char *pBuff, int iBuffLen, char *pKey=NULL, int iKeyLen=0);

//這個main函數(shù)是用來測試的
#define TEST_LEN 100
int main(int argc, char* argv[])
{
 unsigned 
char totest[TEST_LEN];
 memcpy(totest, 
"012345678901234567890123456789012345678901234567890123456789\
0123456789012345678901234567890123456789", 100);

 JiangEncode(totest, TEST_LEN, 
"J~xye"6);

 
int i;
 
for(i=0; i<TEST_LEN; i++)
 {
  
if((i%10)==0)
   printf(
"\n");
  printf(
"%d ", totest[i]);
 }

 printf(
"\n");

 JiangDecode(totest, TEST_LEN, 
"J~xye"6);

 
for(i=0; i<TEST_LEN; i++)
 {
  
if((i%10)==0)
   printf(
"\n");
  printf(
"%d ", totest[i]);
 }

 
return 0;
}

//交換兩個BYTE
void Swap2Byte(unsigned char* v1, unsigned char* v2)
{
 
*v1 ^= *v2;
 
*v2 ^= *v1;
 
*v1 ^= *v2;
}

void GetMyCypher(const char* pKey, int iKeyLen, unsigned char* pMyCypher)
{
 
//原始加密索引
 const unsigned char cypherOrg[256=
 {
  
1351517518525526461141501612481953
  
95225567221611514916424726103034102170
  
229529222855892353810619021711214417123049
  
8324541220606820479209104184211110178205
  
7621210316922459772159816624182440120136
  
13115818520810718922012712915217920673219118154
  
1811968724916488024011293910518721497163
  
2542543125135146173236471131471742333296160
  
251225878210109183194932315086250216365
  
195942266171201641929123744116156191218117
  
15918621310017223942126130157188223122142137128
  
1551821938823235101175234371111772006719784
  
25231339916524479274511915317620370202
  
692077422212113913414516822762661988124314
  
185490238411231411401431381331481672421323
  
57752211241321511622532836108180199822461
 };

 memcpy(pMyCypher, cypherOrg, 
256);

 
//根據(jù)密碼調(diào)整加密索引
 int i, j;
 
for(i=0; i<iKeyLen; i++)
 {
  
for(j=0; j<256; j++)
  {
   
int iSwitchIndex = (pMyCypher[j] * pKey[i])%255;
   
if(iSwitchIndex!=j)
    Swap2Byte(
&(pMyCypher[j]), &(pMyCypher[iSwitchIndex]));
  }
 }
}

void JiangCode(unsigned char* pBuff, int iBuffLen, char* pKey, int iKeyLen)
{
 unsigned 
char cypher[256];
 GetMyCypher(pKey, iKeyLen, cypher);
 
int iIndex=0;
 
while (iIndex<iBuffLen)
 {
  
//其實……也就一個異或操作,所以加密和解密的過程完全一樣
  pBuff[iIndex] ^= cypher[iIndex%256];
  
++iIndex;
 }
}

void JiangEncode(unsigned char* pBuff, int iBuffLen, char* pKey, int iKeyLen)
{
 JiangCode(pBuff, iBuffLen, pKey, iKeyLen);
}

void JiangDecode(unsigned char* pBuff, int iBuffLen, char* pKey, int iKeyLen)
{
 JiangCode(pBuff, iBuffLen, pKey, iKeyLen);
}

寫完了,運行結(jié)果是如下:

241 206 235 249 4 160 190 73 253 196
160 238 105 243 18 190 10 97 26 66
182 218 99 73 40 204 208 123 196 46
76 208 117 159 38 66 234 117 142 52
66 63 135 193 60 49 228 15 12 58
131 252 1 171 96 72 254 198 171 201
110 242 27 189 199 108 136 12 177 215
88 66 156 183 221 142 27 45 61 221
122 158 39 174 123 112 156 241 77 227
112 148 57 67 225 30 47 49 83 94

48 49 50 51 52 53 54 55 56 57
48 49 50 51 52 53 54 55 56 57
48 49 50 51 52 53 54 55 56 57
48 49 50 51 52 53 54 55 56 57
48 49 50 51 52 53 54 55 56 57
48 49 50 51 52 53 54 55 56 57
48 49 50 51 52 53 54 55 56 57
48 49 50 51 52 53 54 55 56 57
48 49 50 51 52 53 54 55 56 57
48 49 50 51 52 53 54 55 56 57 Press any key to continue

上面這段是密文,看起來是不是完全沒有原文的樣子了?你試試看把TEST_LEN改為1,只加密一個字節(jié)看,這也是允許的,代碼純C,移植性很好,拿去別處用也方便。但對安全性要求高的應用可能不能使用這種方法了,至于怎么樣才算安全,我也不知道,密碼學方面的東西我最害怕了。

posted on 2009-09-29 10:34 Jiang Guogang 閱讀(1497) 評論(0)  編輯 收藏 引用 所屬分類: Windows Programming
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            夜夜躁日日躁狠狠久久88av| 亚洲自拍偷拍网址| 日韩亚洲综合在线| 91久久在线观看| 亚洲第一区在线| 亚洲国产精彩中文乱码av在线播放| 国产一区二区中文| 国产亚洲一区二区精品| 国产一区二区成人久久免费影院| 国产日韩欧美在线| 黄色日韩网站视频| 亚洲精品视频免费| 亚洲在线免费| 欧美一区激情视频在线观看| 午夜精品视频一区| 久久天堂国产精品| 亚洲人人精品| 亚洲精品字幕| 午夜精品国产| 欧美不卡视频一区| 国产精品国产三级国产aⅴ入口| 国产精品高清在线| 狠狠入ady亚洲精品经典电影| 亚洲国产日韩欧美在线99| 99视频超级精品| 欧美一区二区三区久久精品| 美脚丝袜一区二区三区在线观看 | 在线观看日韩精品| 亚洲免费影视第一页| 久久久www成人免费毛片麻豆| 久久综合久久综合久久| 亚洲黑丝在线| 性欧美videos另类喷潮| 欧美v日韩v国产v| 国产精品视频久久一区| 91久久精品日日躁夜夜躁国产| 午夜精品理论片| 亚洲精品欧洲| 久久亚洲国产成人| 国产欧美日韩在线视频| 亚洲精品视频一区二区三区| 久久精品国产精品| 亚洲精选在线观看| 久久久亚洲国产美女国产盗摄| 欧美午夜电影网| 亚洲第一福利视频| 亚洲自拍偷拍福利| 亚洲欧洲一二三| 久久看片网站| 国产欧美丝祙| 亚洲一区二区免费在线| 91久久午夜| 麻豆精品一区二区av白丝在线| 国产伦精品一区二区三区免费迷| 亚洲美女视频网| 欧美夫妇交换俱乐部在线观看| 亚洲一品av免费观看| 欧美日韩喷水| 日韩小视频在线观看专区| 欧美成人免费小视频| 卡通动漫国产精品| 亚洲国产一区在线观看| 欧美国产高清| 欧美另类videos死尸| 一区二区高清在线| 在线亚洲电影| 国产精品国产三级国产| 亚洲一区二区三区视频| 99视频精品全部免费在线| 欧美伦理影院| 亚洲色图自拍| 亚洲尤物在线| 国产日韩亚洲欧美精品| 久久久久久黄| 久久视频这里只有精品| 亚洲国产一区在线观看| 亚洲高清久久久| 欧美激情一区二区三区高清视频| 亚洲人成小说网站色在线| 亚洲国产精品一区二区www| 女同一区二区| 正在播放亚洲一区| 在线视频亚洲一区| 激情婷婷久久| 亚洲国产经典视频| 欧美日韩精品免费观看视一区二区| 一区二区三区欧美视频| 宅男噜噜噜66一区二区66| 一区二区日韩免费看| 亚洲视频精品| 国产乱码精品一区二区三区忘忧草 | 欧美午夜不卡| 欧美一区二区三区在线视频| 欧美在线免费观看视频| 亚洲电影免费在线| 亚洲精品国产视频| 国产伦精品一区二区三区视频黑人 | 久久免费偷拍视频| 亚洲毛片在线观看| 亚洲成色精品| 亚洲美女av电影| 国产亚洲欧美日韩精品| 亚洲国产精品久久91精品| 欧美视频不卡中文| 久久久久久久久伊人| 欧美精品二区| 久久国产一区二区| 欧美www视频| 久久久久久久综合狠狠综合| 欧美精品一区二区三| 老司机凹凸av亚洲导航| 国产精品激情电影| 亚洲国产影院| 亚洲国产成人av好男人在线观看| 亚洲午夜av在线| 99热免费精品| 欧美www在线| 牛牛精品成人免费视频| 国产视频一区免费看| 一区二区三区日韩| 9i看片成人免费高清| 美女999久久久精品视频| 久久影视精品| 国产亚洲欧美一区| 亚洲免费视频一区二区| 一区二区三区视频在线观看| 免费观看30秒视频久久| 久久国产福利| 欧美视频一区二区三区| 亚洲青涩在线| 亚洲国产日韩在线| 久久久久久久尹人综合网亚洲| 欧美一级淫片aaaaaaa视频| 美女在线一区二区| 免播放器亚洲| 欧美亚洲三级| 99热精品在线观看| 久久这里有精品15一区二区三区| 亚洲国产视频一区| 亚洲影视在线| 韩国自拍一区| 亚洲精品1区| 亚洲一区二区毛片| 国产精品第一区| 亚洲卡通欧美制服中文| 欧美日韩精品一区二区在线播放| 亚洲精品国产系列| 中文精品在线| 黄色成人片子| 美女精品网站| 亚洲午夜精品久久| 久久激情视频| 99精品视频一区| 亚洲欧美激情精品一区二区| 亚洲男女毛片无遮挡| 久久久久久网| 亚洲午夜精品17c| 久久久久99精品国产片| 免费视频一区二区三区在线观看| 欧美chengren| 久久av最新网址| 欧美国产综合一区二区| 午夜精品亚洲一区二区三区嫩草| 国产日本欧美一区二区| 中日韩高清电影网| 久久av一区二区三区亚洲| 亚洲六月丁香色婷婷综合久久| 99天天综合性| 欧美高清hd18日本| 一区二区三区四区国产| 91久久一区二区| 久久噜噜噜精品国产亚洲综合 | 国产亚洲精品bt天堂精选| 久久午夜影视| 国产精品亚洲人在线观看| 久久精品日产第一区二区三区 | 欧美日韩国产二区| 欧美一级久久久| 亚洲激情一区二区三区| 亚洲淫片在线视频| 亚洲福利视频网| 欧美精彩视频一区二区三区| 噜噜爱69成人精品| 国产精品青草久久| 一本色道久久综合亚洲精品婷婷 | 欧美一激情一区二区三区| 亚洲精品社区| 欧美国产日韩一区| 欧美不卡福利| 欧美高清在线| 久久久蜜桃一区二区人| 久久婷婷国产麻豆91天堂| 国产一区二区三区观看| 一区二区福利| 亚洲成人中文| 亚洲国产精品久久久久秋霞影院| 久久er精品视频| 久久久久久九九九九| 性欧美videos另类喷潮| 国产农村妇女毛片精品久久麻豆|