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

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>
            亚洲欧美日韩网| 欧美日韩福利视频| 国产精品成人免费| 亚洲国产精品成人va在线观看| 亚洲国产日韩欧美| 久久人人精品| 欧美专区在线| 在线播放豆国产99亚洲| 一区二区91| 欧美在线看片a免费观看| 亚洲精品日产精品乱码不卡| 99国产一区| 在线精品一区| 一本色道久久88亚洲综合88 | 精品福利免费观看| 亚洲日本va午夜在线电影| 国产欧美日韩综合| 羞羞漫画18久久大片| 亚洲在线观看视频| 欧美成人免费播放| 欧美亚洲在线观看| 亚洲免费视频在线观看| 欧美性jizz18性欧美| 日韩亚洲国产欧美| 午夜精品剧场| 国产日本精品| 久久亚洲精选| 亚洲精品一区二区三区在线观看| 91久久国产综合久久91精品网站| 久久久久国产一区二区三区| 欧美激情一区二区| 亚洲欧美久久久久一区二区三区| 欧美日韩视频在线一区二区观看视频| 亚洲乱码日产精品bd| 亚洲欧美日本伦理| 曰韩精品一区二区| 欧美午夜一区二区| 久久久久天天天天| 1024成人网色www| 亚洲精品欧美日韩专区| 亚洲专区一区二区三区| 国产综合一区二区| 欧美日韩综合网| 欧美在线观看网站| 一道本一区二区| 欧美va亚洲va香蕉在线| 一本久道久久综合婷婷鲸鱼| 国产精品日韩在线一区| 欧美国产日韩一区二区三区| 亚洲免费网址| 亚洲网站在线观看| 一本久久a久久精品亚洲| 看片网站欧美日韩| 久久久999| 久久国产精品色婷婷| 亚洲欧美一区二区激情| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美成人国产va精品日本一级| 国产精品99久久久久久www| 亚洲大片在线| 国产一区二区三区四区在线观看| 欧美日韩一区在线| 欧美精品日韩一区| 欧美日本亚洲视频| 欧美成人久久| 欧美福利一区| 欧美精品在线一区二区| 欧美激情精品久久久久久大尺度| 卡通动漫国产精品| 欧美成人综合网站| 欧美日韩中文精品| 国产精品乱码久久久久久| 国产精品午夜在线| 国产一区二区剧情av在线| 亚洲承认在线| 99国产精品久久久久老师| 中日韩美女免费视频网站在线观看| 亚洲精品美女在线观看| 亚洲精品一二| 亚洲欧美在线视频观看| 欧美一区二区三区喷汁尤物| 西瓜成人精品人成网站| 嫩草成人www欧美| 国产精品一区二区三区久久久| 国产日韩欧美综合| 亚洲深夜激情| 亚洲黄色成人| 久久精品国产精品亚洲| 国产精品扒开腿爽爽爽视频| 韩日欧美一区| 久久精品国产一区二区电影 | 欧美成人一区二免费视频软件| 亚洲电影中文字幕| 久久国产精品亚洲77777| 欧美日本三区| 精品91免费| 久久尤物电影视频在线观看| 国产午夜久久久久| 亚洲欧美激情在线视频| 欧美电影打屁股sp| 久久婷婷av| 亚洲国产精品va在线看黑人 | 亚洲美女黄色片| 亚洲国内精品| 国产精品美女在线| 午夜国产欧美理论在线播放| 在线综合+亚洲+欧美中文字幕| 欧美三区视频| 久久精品二区| 欧美—级在线免费片| 一区二区高清视频在线观看| 亚洲欧洲免费视频| 国产精品久久久久av| 香蕉尹人综合在线观看| 欧美亚洲日本网站| 最近中文字幕日韩精品| 在线中文字幕不卡| 国产美女高潮久久白浆| 久久久噜噜噜久噜久久| 免费久久99精品国产| 国产精品99久久久久久久vr| 亚洲欧美日韩精品久久亚洲区| 国产精品一区二区久久精品| 蜜桃av噜噜一区| 国产精品国产三级国产aⅴ入口| 亚洲欧美日韩第一区| 久久久久91| 亚洲欧美久久久| 老司机免费视频一区二区三区 | 亚洲精品乱码久久久久| 国产精品视频成人| 亚洲国产裸拍裸体视频在线观看乱了| 国产精品www.| 免费永久网站黄欧美| 国产精品视区| 一本色道久久88综合亚洲精品ⅰ| 激情久久中文字幕| 午夜精品影院在线观看| 99精品黄色片免费大全| 欧美二区视频| 欧美激情1区2区3区| 激情久久久久久久| 久久久中精品2020中文| 欧美在线www| 精品99一区二区| 久久婷婷久久| 毛片av中文字幕一区二区| 国产精品自拍三区| 香蕉成人伊视频在线观看| 久久久av网站| 亚洲久久成人| 欧美欧美在线| 欧美一区二区精品久久911| 欧美一区二区精品在线| 国产偷久久久精品专区| 欧美成人免费视频| 99在线热播精品免费| 久久久亚洲人| 一本久久a久久精品亚洲| 国产精品美女主播| 蜜臀a∨国产成人精品| 亚洲欧洲在线看| 久久精品国产综合精品| 亚洲麻豆av| 国产真实乱偷精品视频免| 欧美精品久久一区二区| 久久视频在线视频| 午夜精品久久| 亚洲美洲欧洲综合国产一区| 看欧美日韩国产| 欧美一区二区高清| 亚洲伊人伊色伊影伊综合网| 亚洲三级性片| 1000部精品久久久久久久久| 国产精品午夜视频| 欧美日韩国产小视频在线观看| 久久国产欧美| 久久先锋资源| 狂野欧美激情性xxxx欧美| 亚洲一二区在线| 亚洲字幕在线观看| 亚洲综合国产激情另类一区| aa级大片欧美三级| 一区二区欧美在线| 亚洲免费视频一区二区| 亚洲欧美视频在线观看| 欧美一级在线播放| 午夜激情综合网| 久久久人人人| 欧美高清免费| 国产麻豆视频精品| 国内自拍一区| 日韩一级免费| 欧美一区亚洲| 欧美激情第五页| 亚洲免费小视频| 欧美成人午夜| 国产亚洲精品综合一区91| 日韩视频免费观看高清完整版| 亚洲视频在线观看|