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

Jiang's C++ Space

創作,也是一種學習的過程。

   :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::

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

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

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

#include "String.h"

//加密和解密,其實這兩個函數完全相同的,簡單起見嘛,另外我居然允許密碼為空,也是簡單起見
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函數是用來測試的
#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);

 
//根據密碼調整加密索引
 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);
}

寫完了,運行結果是如下:

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,只加密一個字節看,這也是允許的,代碼純C,移植性很好,拿去別處用也方便。但對安全性要求高的應用可能不能使用這種方法了,至于怎么樣才算安全,我也不知道,密碼學方面的東西我最害怕了。

posted on 2009-09-29 10:34 Jiang Guogang 閱讀(1501) 評論(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>
            亚洲激情综合| 欧美一区二区视频在线| 在线亚洲免费| 国产精品无码专区在线观看| 亚洲欧美中文另类| 久久综合国产精品| 亚洲全黄一级网站| 欧美日韩在线直播| 欧美亚洲综合网| 欧美激情精品| 亚洲欧美日本另类| 精品69视频一区二区三区| 欧美va亚洲va日韩∨a综合色| 亚洲精品影视| 久久精品色图| 日韩一级二级三级| 国产亚洲亚洲| 欧美精品粉嫩高潮一区二区| 亚洲五月六月| 欧美激情一区二区三区| 亚洲一区日韩在线| 在线观看欧美日本| 国产精品国产馆在线真实露脸| 欧美一区午夜精品| 亚洲美女啪啪| 老牛国产精品一区的观看方式| 在线视频中文亚洲| 一区在线影院| 国产精品亚洲精品| 欧美激情导航| 久久精品一区四区| 亚洲无线观看| 亚洲欧洲日本国产| 久久精品首页| 亚洲一区二区三区中文字幕在线| 好吊一区二区三区| 国产精品萝li| 欧美精品三级在线观看| 欧美中文字幕在线播放| 亚洲最新在线| 亚洲国产日韩欧美在线动漫 | 亚洲欧美日韩视频一区| 亚洲国产婷婷香蕉久久久久久| 国产精品久久久久久福利一牛影视 | 国产精品网红福利| 欧美激情亚洲精品| 久久另类ts人妖一区二区| 亚洲免费一在线| 99精品热视频只有精品10| 欧美激情视频一区二区三区在线播放 | 国产一区二区三区av电影 | 国产精品女人久久久久久| 美日韩在线观看| 久久久999精品免费| 午夜国产不卡在线观看视频| 99re国产精品| 亚洲免费电影在线观看| 亚洲国产精品va在线观看黑人| 久久久一本精品99久久精品66| 亚洲综合色激情五月| 夜夜嗨av一区二区三区网站四季av| 亚洲成人自拍视频| 国内精品免费在线观看| 国内精品伊人久久久久av一坑| 国产精品久久国产三级国电话系列 | 国产精品一区二区久久国产| 欧美午夜精品久久久久久超碰| 欧美日本韩国一区| 欧美色图五月天| 欧美视频官网| 国产精品推荐精品| 国产日韩欧美夫妻视频在线观看| 国产伦精品一区二区| 国产欧美日韩伦理| 国产一区二区剧情av在线| 国产在线国偷精品产拍免费yy| 国产香蕉97碰碰久久人人| 国产婷婷97碰碰久久人人蜜臀| 国产亚洲一级高清| 在线成人av| 日韩午夜精品视频| 亚洲视频一区二区| 亚洲欧美日韩第一区| 欧美一区二区观看视频| 久久久久久精| 免费久久99精品国产| 亚洲电影在线播放| 亚洲乱码视频| 亚洲欧美日韩综合aⅴ视频| 久久精品二区亚洲w码| 美女亚洲精品| 欧美午夜精品久久久久久孕妇| 国产精品欧美经典| 国内揄拍国内精品久久| 亚洲精品国产拍免费91在线| 中文有码久久| 久久精品一区二区三区中文字幕| 能在线观看的日韩av| 亚洲精品1区2区| 亚洲一区二区三区在线播放| 欧美中在线观看| 欧美精品一区二区三区四区| 国产精品男女猛烈高潮激情| 国内精品伊人久久久久av影院 | 国产精品伦一区| 国内免费精品永久在线视频| 亚洲精选在线观看| 欧美在线观看你懂的| 欧美国产第一页| 亚洲一级在线观看| 麻豆精品在线视频| 国产精品hd| 伊人色综合久久天天| 亚洲视屏一区| 欧美大片免费久久精品三p| 在线综合亚洲欧美在线视频| 久久久亚洲国产美女国产盗摄| 欧美日韩在线免费| 亚洲电影专区| 欧美一区二区私人影院日本| 亚洲成色777777在线观看影院| 亚洲自拍啪啪| 欧美日韩精品一区二区三区四区 | 亚洲黄色在线| 久久gogo国模裸体人体| 亚洲精品一区二区三区99| 欧美在线观看一二区| 欧美午夜精品久久久久免费视| 亚洲国产精品一区二区www| 午夜一区二区三区不卡视频| 亚洲区一区二| 美女主播一区| 国产在线麻豆精品观看| 午夜久久99| 99精品国产在热久久婷婷| 牛人盗摄一区二区三区视频| 国产综合色产| 香蕉尹人综合在线观看| 亚洲免费观看| 欧美精品观看| 亚洲人成毛片在线播放女女| 久久婷婷综合激情| 午夜亚洲伦理| 国产精品视频一区二区高潮| 亚洲午夜伦理| 亚洲精品日韩综合观看成人91| 快she精品国产999| 一区二区亚洲精品| 久久蜜桃av一区精品变态类天堂| 亚洲一区二区三区三| 国产精品久久久免费| 亚洲一区欧美| 亚洲一区二区三区午夜| 国产精品国产三级国产aⅴ浪潮 | 亚洲国产婷婷香蕉久久久久久99 | 亚洲一区二区在线免费观看视频 | 在线观看视频免费一区二区三区| 久久爱www| 午夜精品影院| 国产一级一区二区| 久久精品夜色噜噜亚洲a∨| 午夜精品免费在线| 国产日韩精品一区二区三区在线| 欧美一区二区三区在线视频| 亚洲欧美一区二区三区久久 | 亚洲一区网站| 亚洲视频一二区| 国产精品一区在线播放| 久久国产天堂福利天堂| 午夜亚洲激情| 国语自产在线不卡| 欧美www在线| 欧美二区在线| 亚洲午夜在线视频| 亚洲一区二区三区在线看 | 亚洲欧美激情视频| 国产一区二区剧情av在线| 狂野欧美激情性xxxx| 欧美+日本+国产+在线a∨观看| 亚洲精品少妇30p| 一区二区欧美精品| 国产欧美日韩一区二区三区在线| 久久精品视频导航| 久久综合中文色婷婷| 亚洲免费av电影| 亚洲免费在线电影| 精品成人乱色一区二区| 亚洲国产一区二区三区a毛片| 欧美三区在线视频| 久久久91精品| 欧美国产日韩在线| 午夜精品理论片| 久久美女艺术照精彩视频福利播放| 亚洲三级电影全部在线观看高清| 亚洲免费av电影| 国产一区二区三区久久久久久久久| 欧美激情麻豆| 国产欧美91| 亚洲日本成人网| 国产亚洲一区二区精品|