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

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>
            欧美色欧美亚洲另类二区| 国产麻豆91精品| 在线观看亚洲视频啊啊啊啊| 久久精品99| 久久久久久综合网天天| 亚洲第一精品影视| 亚洲国产日韩欧美在线99| 欧美激情一区二区三级高清视频| 亚洲精品一二三| 日韩视频在线你懂得| 国产精品久久九九| 欧美一区二区三区成人| 久久国产视频网| 亚洲区中文字幕| 在线中文字幕不卡| 国内一区二区三区| 亚洲激情另类| 国产精品亚洲综合天堂夜夜| 久久久噜噜噜久久久| 欧美激情在线有限公司| 欧美一区二区高清在线观看| 久久人人爽爽爽人久久久| 亚洲精品一区二区在线| 亚洲一区二区三区四区在线观看| 国产一区高清视频| 亚洲人成小说网站色在线| 国产精品视频导航| 欧美国产日韩精品| 国产精品美女久久| 欧美激情亚洲自拍| 国产欧美一区二区精品性色| 欧美国产日韩免费| 国产日韩综合| 亚洲人成在线播放网站岛国| 国产欧美一区二区色老头 | 国产亚洲高清视频| 亚洲国产精品成人综合| 国产精品嫩草99av在线| 欧美激情中文字幕乱码免费| 国产精品免费久久久久久| 欧美二区视频| 国产婷婷97碰碰久久人人蜜臀| 亚洲黄色高清| 国外视频精品毛片| 亚洲一区观看| 中文有码久久| 欧美成人精品在线观看| 久久米奇亚洲| 国产精品午夜av在线| 亚洲毛片视频| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲宅男天堂在线观看无病毒| 亚洲高清久久网| 欧美怡红院视频| 亚洲欧美日韩一区在线| 欧美日韩在线观看一区二区| 欧美不卡激情三级在线观看| 国内视频精品| 性欧美xxxx视频在线观看| 亚洲欧美日韩中文在线制服| 欧美另类高清视频在线| 亚洲欧洲精品一区二区| 亚洲日本久久| 欧美国产1区2区| 亚洲国产成人久久| 亚洲欧洲日本一区二区三区| 免费黄网站欧美| 亚洲激情一区二区| 99视频有精品| 欧美日韩国产影院| 99亚洲精品| 亚洲综合成人婷婷小说| 国产精品老牛| 欧美一级片久久久久久久| 久久久精品动漫| 在线欧美小视频| 嫩草影视亚洲| 亚洲人成欧美中文字幕| 亚洲一级网站| 国产日韩欧美高清| 久久国产直播| 欧美激情成人在线| 一本久久青青| 国产精品日本| 欧美在线中文字幕| 欧美高清不卡| 亚洲婷婷免费| 国产精品五月天| 久久综合色婷婷| 日韩一区二区免费高清| 欧美有码视频| 亚洲国产毛片完整版| 欧美日韩国产黄| 欧美亚洲网站| 欧美国产91| 亚洲专区欧美专区| 精品99视频| 欧美视频日韩视频在线观看| 性欧美xxxx视频在线观看| 欧美成人精品高清在线播放| 在线一区视频| 在线观看欧美黄色| 欧美日韩亚洲一区二区三区| 欧美一区二区在线看| 亚洲国产综合在线| 性做久久久久久久久| 亚洲国产一二三| 国产精品腿扒开做爽爽爽挤奶网站| 久久久久欧美精品| 一区二区不卡在线视频 午夜欧美不卡在 | 国产欧美日韩视频一区二区| 久久这里只有| 亚洲欧美一区二区原创| 亚洲国产二区| 久久人人爽国产| 国产精品99久久久久久久久久久久| 国产欧美一区二区在线观看| 欧美人与性动交cc0o| 久久久国产91| 午夜精彩国产免费不卡不顿大片| 亚洲国产精品成人一区二区| 久久久久久999| 亚洲欧美经典视频| 亚洲美女性视频| 精品成人一区二区| 国产婷婷一区二区| 欧美午夜精品久久久久免费视 | 亚洲精品久久7777| 免费在线视频一区| 欧美亚洲一区在线| 宅男噜噜噜66一区二区| 亚洲国产日韩综合一区| 国产午夜亚洲精品羞羞网站| 国产精品s色| 欧美日韩亚洲一区| 欧美精品在线观看一区二区| 麻豆成人在线播放| 久久全球大尺度高清视频| 欧美一区二区在线看| 亚洲欧美在线磁力| 中文一区二区| 亚洲午夜激情网站| aa成人免费视频| 日韩视频三区| 99精品欧美一区| 亚洲精品综合| 日韩一区二区免费高清| 99国产精品久久久久久久| 亚洲伦理在线| 亚洲视频在线免费观看| 在线一区视频| 亚洲欧美一区二区激情| 性欧美xxxx视频在线观看| 欧美一级欧美一级在线播放| 久久gogo国模裸体人体| 久久成人这里只有精品| 久久久欧美精品| 欧美国产日本| 欧美性做爰猛烈叫床潮| 国产精品久久久久高潮| 国产午夜久久久久| 亚洲高清av| 一区二区三区精品久久久| 亚洲一区日本| 久久久xxx| 欧美国产精品v| 夜夜爽www精品| 欧美在线视频播放| 欧美成人乱码一区二区三区| 欧美日韩不卡| 国产日韩欧美二区| 最新日韩精品| 午夜精品在线视频| 免费精品视频| 一本久久综合亚洲鲁鲁| 久久国产黑丝| 欧美色欧美亚洲另类二区 | 免费视频一区| 国产精品美女久久久久久2018| 国产一区二区三区日韩欧美| 91久久精品视频| 午夜一级久久| 亚洲国产成人久久| 午夜精品一区二区在线观看| 欧美 日韩 国产一区二区在线视频 | 亚洲在线观看视频网站| 久久人人97超碰精品888| 欧美私人网站| 亚洲国产成人精品久久| 亚洲综合电影| 欧美国产日韩一区二区三区| 亚洲图色在线| 欧美看片网站| 一区精品久久| 欧美一区二区在线看| 亚洲日本一区二区三区| 久久久国产成人精品| 国产精品欧美在线| 日韩一级免费| 欧美激情一区二区三区成人|