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

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>
            亚洲欧洲日产国产网站| 国产视频精品免费播放| 欧美性事在线| 一区二区免费在线观看| 亚洲国产三级| 欧美三级视频在线播放| 亚洲福利视频免费观看| 欧美成人综合| 嫩草国产精品入口| 91久久久久久久久| 亚洲国产精品成人va在线观看| 快播亚洲色图| 亚洲综合首页| 欧美大片在线观看一区二区| 亚洲精品在线观看视频| 欧美在线观看网站| 欧美激情一区二区三区在线视频观看| 国内外成人免费激情在线视频网站 | 亚洲欧美激情四射在线日 | 亚洲欧美另类在线观看| 亚洲日本激情| 农夫在线精品视频免费观看| 亚洲国产精品va在线观看黑人| 午夜精品国产更新| 国产精品高潮呻吟久久av无限| 亚洲特级毛片| 亚洲欧美日韩一区二区| 国产日韩在线视频| 亚洲欧美电影在线观看| 欧美一级一区| 国产精品99久久久久久久久久久久| 亚洲免费小视频| 亚洲精品在线观看视频| 亚洲婷婷综合色高清在线| 在线免费观看视频一区| 日韩午夜剧场| 亚洲国产中文字幕在线观看| 亚洲欧美www| 一区二区不卡在线视频 午夜欧美不卡在 | 午夜精品网站| 中文一区在线| 欧美精品在线观看| 亚洲高清在线| 91久久精品国产91性色| 欧美一级片一区| 亚洲在线网站| 国产精品剧情在线亚洲| 日韩视频免费观看高清在线视频| 亚洲人成网站色ww在线| 两个人的视频www国产精品| 久久久久九九九| 在线精品视频一区二区| 另类欧美日韩国产在线| 老司机免费视频一区二区三区| 国内成人在线| 免费日韩av| 亚洲乱码久久| 久久精品亚洲一区| 亚洲第一中文字幕| 欧美日韩国产成人在线91| 日韩视频在线你懂得| 亚洲午夜久久久久久久久电影院| 你懂的成人av| 日韩午夜三级在线| 久久久亚洲高清| 亚洲久久成人| 国产精品久久久久久久久| 香蕉成人久久| 日韩亚洲视频| 久久色在线播放| 日韩一级在线| 欧美久久久久久久| 久久福利一区| 正在播放欧美一区| 欧美大片免费看| 久久黄金**| 亚洲一区免费观看| 亚洲精品1区2区| 国产日韩精品一区二区三区在线| 美女啪啪无遮挡免费久久网站| 一区二区三区久久久| 亚洲高清视频在线| 久久午夜激情| 久久精品天堂| 亚洲国产综合在线| 久久精品国产第一区二区三区| 亚洲高清不卡| 在线观看国产精品网站| 国产午夜精品美女视频明星a级| 欧美精品色网| 欧美老女人xx| 欧美高清影院| 欧美日韩www| 欧美精品在线观看一区二区| 欧美成ee人免费视频| 中国亚洲黄色| 午夜日韩电影| 一二三区精品福利视频| 亚洲区一区二| 日韩一二在线观看| 亚洲三级影院| 亚洲免费高清| 性亚洲最疯狂xxxx高清| 亚洲一区二区成人| 欧美诱惑福利视频| 久久婷婷国产综合精品青草| 久久亚洲精选| 亚洲第一黄色| 一区二区日韩精品| 欧美一区二区三区免费视频| 久久九九精品| 欧美激情视频网站| 国产精品区一区| 韩国精品久久久999| 日韩视频在线一区| 久久av一区二区三区| 欧美不卡视频一区| 中文在线资源观看网站视频免费不卡 | 亚洲高清视频在线观看| 亚洲午夜高清视频| 久久中文欧美| 亚洲影院污污.| 欧美顶级艳妇交换群宴| 国产欧美日韩亚洲| 亚洲美女中文字幕| 久久久久99| 在线亚洲激情| 欧美成人精品一区| 国产综合亚洲精品一区二| 中日韩美女免费视频网址在线观看| 久久久久久久999精品视频| 亚洲精品影院| 欧美大片国产精品| 国内精品视频一区| 欧美一激情一区二区三区| 日韩视频一区二区三区在线播放免费观看| 亚洲女性喷水在线观看一区| 欧美美女操人视频| 亚洲人成啪啪网站| 亚洲成人在线网| 久久久精品动漫| 伊人蜜桃色噜噜激情综合| 久久伊人一区二区| 性欧美videos另类喷潮| 国产欧美日韩伦理| 午夜精品福利电影| 一区二区av在线| 国产精品成人一区二区三区吃奶| 夜夜夜久久久| 一二三四社区欧美黄| 欧美日韩中文精品| 午夜在线视频观看日韩17c| 亚洲免费视频网站| 国产有码一区二区| 美国成人直播| 欧美日韩成人一区二区三区| 亚洲图片激情小说| 午夜电影亚洲| 亚洲第一黄色网| 一本在线高清不卡dvd| 国产视频一区二区三区在线观看| 久久精品一区二区国产| 久久久久成人精品| 99这里有精品| 久久国产主播| 亚洲精品影院| 欧美一区二区三区免费看| 亚洲人成高清| 欧美一级成年大片在线观看| 1000部精品久久久久久久久| 一本大道久久a久久精品综合 | 日韩视频专区| 欧美在线三区| 亚洲一区在线播放| 久久久亚洲综合| 欧美一区亚洲| 欧美三级资源在线| 欧美国产乱视频| 国产日韩一区欧美| 在线一区二区三区四区五区| 影音先锋日韩精品| 欧美一区二区三区在线| 亚洲素人一区二区| 欧美美女操人视频| 亚洲福利小视频| 亚洲福利视频一区二区| 欧美一区二区在线观看| 午夜精品久久久久久久久久久| 欧美高清视频一区二区三区在线观看 | 亚洲人成人99网站| 亚洲精品国偷自产在线99热| 久久综合九色九九| 欧美国产日韩一二三区| 国产日韩精品一区| 亚洲啪啪91| 一片黄亚洲嫩模| 欧美日韩国产另类不卡| 日韩午夜一区| 欧美亚洲在线视频| 国产日韩综合|