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

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>
            欧美性事免费在线观看| 久久精品国产综合| 羞羞漫画18久久大片| 亚洲少妇一区| 欧美亚洲视频在线看网址| 一级日韩一区在线观看| 一级成人国产| 午夜视频一区二区| 久久亚洲视频| 亚洲国产影院| 亚洲免费播放| 午夜精品视频| 欧美a级一区| 国产精品美腿一区在线看 | 亚洲午夜免费福利视频| 99在线热播精品免费99热| 亚洲一区在线免费| 久久婷婷麻豆| 国产精品白丝av嫩草影院| 国产专区一区| 亚洲视频在线观看三级| 久久久女女女女999久久| 亚洲精品在线免费| 久久久精品国产免大香伊| 欧美三级午夜理伦三级中视频| 国产欧美另类| 一本色道久久精品| 老司机免费视频一区二区| 99热精品在线| 99天天综合性| 亚洲欧美日韩国产一区二区三区| 久久久久久久综合色一本| 亚洲欧洲精品一区二区三区 | 久热这里只精品99re8久| 欧美先锋影音| 一区二区三区黄色| 久久婷婷一区| 亚洲视频在线观看| 欧美激情精品久久久久久大尺度| 国产丝袜一区二区| 亚洲一区国产精品| 亚洲国产精品成人| 老色批av在线精品| 国模私拍视频一区| 欧美在线啊v| 亚洲视频1区| 欧美日韩中文在线观看| 亚洲国产mv| 麻豆精品精品国产自在97香蕉| 亚洲综合色在线| 欧美午夜片在线免费观看| 日韩亚洲欧美中文三级| 免费在线日韩av| 久久久久综合一区二区三区| 国产欧美一区二区三区另类精品| 亚洲一区二区三区四区中文| 亚洲激情一区二区三区| 你懂的国产精品| 91久久久精品| 亚洲第一中文字幕| 你懂的国产精品| 亚洲精品女av网站| 亚洲国产精品久久久久婷婷884| 久久青草欧美一区二区三区| 激情欧美日韩一区| 男人的天堂成人在线| 看欧美日韩国产| 亚洲欧洲精品一区二区三区不卡 | 亚洲午夜日本在线观看| 欧美色精品在线视频| 亚洲欧美日韩直播| 欧美在线一区二区三区| 激情久久综合| 亚洲国产片色| 欧美日韩国产探花| 亚洲网站在线观看| 国产自产精品| 蜜臀91精品一区二区三区| 快播亚洲色图| 一区二区动漫| 欧美一区二区免费| 精品91在线| 91久久精品日日躁夜夜躁欧美| 欧美日本在线| 久久精品72免费观看| 久久深夜福利| 9色精品在线| 亚洲男人的天堂在线| 在线精品视频免费观看| 亚洲精品一二三| 国语对白精品一区二区| 亚洲日本aⅴ片在线观看香蕉| 国产精品久久久久天堂| 亚洲国产天堂网精品网站| 久久久久久黄| 中文精品一区二区三区| 午夜精品美女自拍福到在线| 在线看片欧美| 亚洲视频网站在线观看| 在线不卡中文字幕| 亚洲午夜精品网| 亚洲精品少妇网址| 欧美一区二区精品在线| 中文在线资源观看网站视频免费不卡 | 久久久精品网| 欧美日本亚洲| 久久综合色88| 国产精品久久久久久超碰| 欧美激情第五页| 国产精一区二区三区| 亚洲区在线播放| 亚洲欧洲日韩综合二区| av成人免费在线| 国产精品99免视看9| 欧美一区二区三区四区在线观看地址| 久久精品国产v日韩v亚洲| 在线亚洲观看| 亚洲国产一区二区a毛片| 午夜精品亚洲| 国产精品激情| 亚洲美女啪啪| 亚洲精品国偷自产在线99热| 亚洲香蕉网站| 在线视频欧美日韩精品| 麻豆精品视频在线| 麻豆91精品| 在线观看成人网| 久久久久.com| 久久国产精品99久久久久久老狼| 国产精品magnet| 一本大道久久a久久综合婷婷| 一个色综合导航| 欧美日韩国产亚洲一区| 最新日韩在线| 日韩视频中午一区| 欧美福利一区| 亚洲欧洲在线播放| 夜夜夜久久久| 欧美视频一区在线| 亚洲图片自拍偷拍| 久久成人精品视频| 一色屋精品亚洲香蕉网站| 久久日韩精品| 亚洲国产日韩一区| 欧美亚洲一区| 欧美一级片久久久久久久| 国产精品露脸自拍| 午夜伦欧美伦电影理论片| 香蕉精品999视频一区二区| 在线视频成人| 欧美aa国产视频| 亚洲精品综合| 午夜精品久久| 国产一区深夜福利| 久久久久久一区二区| 欧美高清影院| 亚洲欧美日韩另类| 国产欧美在线| 老牛影视一区二区三区| 亚洲国产欧洲综合997久久| 亚洲一区二区欧美日韩| 国产性猛交xxxx免费看久久| 久色婷婷小香蕉久久| 一本色道久久综合精品竹菊| 国产精品久久久久一区二区三区共| 日韩午夜在线观看视频| 中日韩美女免费视频网址在线观看| 亚洲一区二区日本| 黄色精品网站| 欧美日韩午夜| 欧美一区免费视频| 亚洲国产精品电影| 国产精品美女久久久久久2018| 亚洲国产第一页| 亚洲尤物影院| 亚洲精品一区二区网址| 美脚丝袜一区二区三区在线观看| 国产精品久久久久久av下载红粉| 男女av一区三区二区色多| 精品不卡在线| 久久天天躁狠狠躁夜夜av| 一区二区三区四区国产| 欧美黄色网络| 男女视频一区二区| 国产目拍亚洲精品99久久精品| 亚洲精品亚洲人成人网| 欧美日韩国产黄| 久久精品视频导航| 夜夜嗨av色一区二区不卡| 老司机免费视频久久| 午夜一级久久| 一本色道久久综合狠狠躁篇怎么玩| 国产日韩一区| 国产精品露脸自拍| 欧美日韩久久精品| 欧美va亚洲va国产综合| 欧美在线1区| 亚洲欧美日韩人成在线播放| 99精品热视频| 亚洲精品视频在线|