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

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 閱讀(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>
            欧美精品成人一区二区在线观看| 亚洲精品视频一区| 久久久久久尹人网香蕉| 欧美一区免费| 久久免费视频在线观看| 蜜臀av国产精品久久久久| 欧美激情a∨在线视频播放| 欧美激情精品久久久六区热门 | 亚洲小说春色综合另类电影| 欧美日韩精品久久久| 亚洲欧美精品在线观看| 亚洲一区二区三区欧美 | 亚洲电影在线观看| 亚洲人成绝费网站色www| 国户精品久久久久久久久久久不卡| 免费视频一区| 免费久久精品视频| 欧美激情精品久久久久久| 亚洲欧美三级在线| 欧美一二三视频| 欧美国产欧美综合| 欧美日韩午夜剧场| 国产精品日韩电影| 国产精品视频福利| 国产日产高清欧美一区二区三区| 国产麻豆日韩欧美久久| 国产精品久久久久永久免费观看| 韩日成人av| 在线日本成人| 欧美一级淫片aaaaaaa视频| 久久女同互慰一区二区三区| 国产精品视频一二| 久久久天天操| 麻豆av一区二区三区久久| 欧美成人午夜剧场免费观看| 亚洲日韩第九十九页| 亚洲三级视频在线观看| 亚洲欧美日韩国产综合| 久久久一二三| 国产日韩三区| 亚洲综合视频一区| 亚洲国产高清在线观看视频| 性色av一区二区三区在线观看| 欧美精品一区二区三区四区| 国产一区二区三区在线观看免费| 中文在线资源观看网站视频免费不卡| 久久久精品tv| 香蕉av777xxx色综合一区| 欧美午夜在线| 一本不卡影院| 亚洲第一页自拍| 久久久综合网站| 国产视频不卡| 久久国产黑丝| 性欧美xxxx视频在线观看| 国产精品久久久免费| 一本色道久久综合亚洲精品小说| 欧美gay视频| 久久在精品线影院精品国产| 好吊妞**欧美| 久久手机免费观看| 久久精品99国产精品日本| 国产三区精品| 久久精品国产亚洲一区二区| 亚洲欧美日本国产专区一区| 国产精品美女一区二区| 午夜一区二区三视频在线观看| 亚洲午夜精品17c| 国产精品欧美激情| 久久aⅴ国产紧身牛仔裤| 欧美一区二视频| 国产亚洲精品久久久久动| 久久噜噜亚洲综合| 老司机午夜精品| 99精品热视频只有精品10| 亚洲精品久久久久中文字幕欢迎你| 欧美精品久久久久a| 亚洲午夜日本在线观看| 亚洲欧美国产三级| 一区二区三区在线免费观看 | 国产一区二区0| 久久精品女人| 蜜乳av另类精品一区二区| 99这里有精品| 午夜在线一区二区| 亚洲福利视频二区| 最新中文字幕一区二区三区| 欧美色偷偷大香| 久久精品亚洲一区| 嫩草影视亚洲| 午夜伦理片一区| 久久久综合激的五月天| 亚洲新中文字幕| 久久精品二区| 亚洲国产精品免费| 欧美日韩综合在线免费观看| 午夜日韩激情| 久久久久国产成人精品亚洲午夜| 91久久精品久久国产性色也91| aa级大片欧美| 在线成人小视频| 亚洲深夜激情| 亚洲日本欧美天堂| 亚洲一区在线看| 亚洲精品少妇| 久久久蜜桃精品| 亚洲欧美日韩在线观看a三区| 久久亚洲二区| 午夜视频一区在线观看| 国产精品第13页| 国产精品三上| 国产精品美女久久久免费| 中文国产成人精品| 久久综合给合久久狠狠色| 亚洲一区在线播放| 激情久久一区| 一本色道久久88综合亚洲精品ⅰ| 国产视频久久久久| 亚洲美女一区| 亚洲日本成人| 久久网站免费| 久久精品免费观看| 国产精品久久久久久超碰| 91久久视频| 亚洲欧洲精品一区二区| 久久久国产91| 久久久久久自在自线| 欧美亚洲一区在线| 国产精品女主播| 亚洲视频在线观看三级| 久久久www| 欧美资源在线| 欧美午夜一区二区| a91a精品视频在线观看| 亚洲裸体在线观看| 欧美.日韩.国产.一区.二区| 美女精品自拍一二三四| 国产视频久久| 欧美一区不卡| 久久视频在线看| 国产一区免费视频| 欧美影院在线| 欧美a级在线| 亚洲精品视频在线观看网站| 蜜桃av噜噜一区二区三区| 欧美激情a∨在线视频播放| 国内久久婷婷综合| 亚洲欧美日韩国产一区| 亚洲一区日韩在线| 国产精品久久久久aaaa樱花| 亚洲精品美女免费| 亚洲男人av电影| 国产精品一区二区三区乱码| 亚洲综合精品| 噜噜噜躁狠狠躁狠狠精品视频| 极品尤物久久久av免费看| 一本色道久久综合精品竹菊| 久久免费视频在线观看| 欧美xart系列在线观看| 亚洲精品永久免费精品| 欧美日韩另类视频| 亚洲欧美久久| 亚洲电影免费在线观看| 一区二区不卡在线视频 午夜欧美不卡'| 蜜桃av一区二区三区| 亚洲深夜福利| 久久嫩草精品久久久精品一| 99这里有精品| 精品动漫一区二区| 欧美成人免费在线视频| 亚洲无线一线二线三线区别av| 欧美伊人久久久久久久久影院| 好吊视频一区二区三区四区| 女女同性精品视频| 亚洲欧美激情诱惑| 麻豆av一区二区三区久久| 亚洲欧洲中文日韩久久av乱码| 国产精品欧美日韩久久| 久久网站免费| 午夜精品一区二区三区在线视| 女生裸体视频一区二区三区| 亚洲欧美日韩国产| 亚洲国产精品免费| 国产精品欧美风情| 欧美国产亚洲精品久久久8v| 亚洲欧美视频在线| 91久久精品久久国产性色也91| 久久精品成人欧美大片古装| 亚洲黄色视屏| 国产伊人精品| 欧美日韩国产综合视频在线| 久久久久久精| 日韩一级黄色av| 蜜臀a∨国产成人精品| 欧美夜福利tv在线| 一区二区精品在线观看| 激情久久久久久| 国产精品免费视频观看| 欧美精品一区在线| 久久精品国产99国产精品|