Znn3bq.jpeg
²é¿´: 925  |  »Ø¸´: 6

zx521

½ð³æ (СÓÐÃûÆø)

[ÇóÖú] AES»òDES¼ÓÃÜ

ÇóÒ»¸öÓÃC»òC++±à³ÌʵÏÖµÄDES»òAESËã·¨µÄ¼ÓÃÜ¡£³ÌÐòÖÐÒªÓнÏÏêϸµÄ×¢½â¡£Ð»Ð»¸÷λ¸ßÊÖ´óÄã¡
»Ø¸´´ËÂ¥
×Ô¼º²»Å¬Á¦£¬›]ÈËÌæÄãˆÔ?Š
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

fdesheng

ľ³æ (ÕýʽдÊÖ)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï
¸Ðл²ÎÓ룬ӦÖúÖ¸Êý +1
jjdg: ½ð±Ò+1, ¸Ðл²ÎÓë 2013-03-11 00:41:33
zx521: ½ð±Ò+20, ¡ï¡ï¡ïºÜÓаïÖú, Õâ¸öÍøÕ¾²»´í£¬Ð»Ð»Ìáʾ 2013-03-11 17:23:58
¿ÉÒÔÏÂÔØmiracl¿â£¬ÀïÃæºÃÏñÓС£¡£¡£ÄêǰÓùý£¬²»¹ý²»ÊÇÓõÄDESËùÒÔ²»ÊǺÜÁ˽⣬Äã¿ÉÒÔGoogle»òbaiduËÑһϿ´¿´¡£»¹ÓоÍÊÇ»¹ÓбðµÄÒ²¿ÉÒÔ×Ô¼ºËÑ£¬¾ßÌå¼Ç²»Çå³þÁË¡£
2Â¥2013-03-10 22:44:37
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

jjdg

°æÖ÷ (ÖªÃû×÷¼Ò)

ÓÅÐã°æÖ÷

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¸Ðл²ÎÓ룬ӦÖúÖ¸Êý +1
Ö±½Ó°Ù¶È»ògoogleÏàÓ¦´úÂ룬Ȼºó×Ô¼ºÐ´¸öµ÷Óò»¾ÍÍêÁË
ŬÁ¦Ñ§Ï°£¡ÒÔÕýµ±Í¾¾¶£¡»ñµÃÐèÒªµÄ֪ʶ£¡
3Â¥2013-03-11 00:42:11
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

137282855

Òø³æ (³õÈëÎÄ̳)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï
¸Ðл²ÎÓ룬ӦÖúÖ¸Êý +1
zx521: ½ð±Ò+20, ¡ïÓаïÖú, àÅ£¬Å¬Á¦ÕÒÄØ 2013-03-11 17:23:01
gO
4Â¥2013-03-11 08:57:49
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

bear7788

гæ (³õÈëÎÄ̳)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï
¸Ðл²ÎÓ룬ӦÖúÖ¸Êý +1
zx521: ½ð±Ò+40, ¡ï¡ï¡ïºÜÓаïÖú, Äܲ»ÄÜ´øµã×¢ÊÍ£¬ÓеãÉî- -»¹ÊÇллÁË 2013-03-11 17:25:31
// AES_3.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "AES_3.h"

BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                                         )
{
    switch (ul_reason_for_call)
        {
        case DLL_PROCESS_ATTACH:
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
                break;
    }
    return TRUE;
}




unsigned char  block1[16] = {      0x04,0x00,0x07,0x00,
                             0x08,0x00,0xde,0x03,
                             0x6e,0x00,0xdc,0x00,
                             0x03,0x07,0x04,0x1e
                      };
unsigned char key1[16]= {
                 0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00,
                 0x00,0x00,0x00,0x00
                 };

static const unsigned char S_box[256] = {
   99, 124, 119, 123, 242, 107, 111, 197,  48,   1, 103,  43, 254, 215, 171, 118,
  202, 130, 201, 125, 250,  89,  71, 240, 173, 212, 162, 175, 156, 164, 114, 192,
  183, 253, 147,  38,  54,  63, 247, 204,  52, 165, 229, 241, 113, 216,  49,  21,
    4, 199,  35, 195,  24, 150,   5, 154,   7,  18, 128, 226, 235,  39, 178, 117,
    9, 131,  44,  26,  27, 110,  90, 160,  82,  59, 214, 179,  41, 227,  47, 132,
   83, 209,   0, 237,  32, 252, 177,  91, 106, 203, 190,  57,  74,  76,  88, 207,
  208, 239, 170, 251,  67,  77,  51, 133,  69, 249,   2, 127,  80,  60, 159, 168,
   81, 163,  64, 143, 146, 157,  56, 245, 188, 182, 218,  33,  16, 255, 243, 210,
  205,  12,  19, 236,  95, 151,  68,  23, 196, 167, 126,  61, 100,  93,  25, 115,
   96, 129,  79, 220,  34,  42, 144, 136,  70, 238, 184,  20, 222,  94,  11, 219,
  224,  50,  58,  10,  73,   6,  36,  92, 194, 211, 172,  98, 145, 149, 228, 121,
  231, 200,  55, 109, 141, 213,  78, 169, 108,  86, 244, 234, 101, 122, 174,   8,
  186, 120,  37,  46,  28, 166, 180, 198, 232, 221, 116,  31,  75, 189, 139, 138,
  112,  62, 181, 102,  72,   3, 246,  14,  97,  53,  87, 185, 134, 193,  29, 158,
  225, 248, 152,  17, 105, 217, 142, 148, 155,  30, 135, 233, 206,  85,  40, 223,
  140, 161, 137,  13, 191, 230,  66, 104,  65, 153,  45,  15, 176,  84, 187,  22,
};

static const unsigned char Si_box[256] = {
   82,   9, 106, 213,  48,  54, 165,  56, 191,  64, 163, 158, 129, 243, 215, 251,
  124, 227,  57, 130, 155,  47, 255, 135,  52, 142,  67,  68, 196, 222, 233, 203,
   84, 123, 148,  50, 166, 194,  35,  61, 238,  76, 149,  11,  66, 250, 195,  78,
    8,  46, 161, 102,  40, 217,  36, 178, 118,  91, 162,  73, 109, 139, 209,  37,
  114, 248, 246, 100, 134, 104, 152,  22, 212, 164,  92, 204,  93, 101, 182, 146,
  108, 112,  72,  80, 253, 237, 185, 218,  94,  21,  70,  87, 167, 141, 157, 132,
  144, 216, 171,   0, 140, 188, 211,  10, 247, 228,  88,   5, 184, 179,  69,   6,
  208,  44,  30, 143, 202,  63,  15,   2, 193, 175, 189,   3,   1,  19, 138, 107,
   58, 145,  17,  65,  79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115,
  150, 172, 116,  34, 231, 173,  53, 133, 226, 249,  55, 232,  28, 117, 223, 110,
   71, 241,  26, 113,  29,  41, 197, 137, 111, 183,  98,  14, 170,  24, 190,  27,
  252,  86,  62,  75, 198, 210, 121,  32, 154, 219, 192, 254, 120, 205,  90, 244,
   31, 221, 168,  51, 136,   7, 199,  49, 177,  18,  16,  89,  39, 128, 236,  95,
   96,  81, 127, 169,  25, 181,  74,  13,  45, 229, 122, 159, 147, 201, 156, 239,
  160, 224,  59,  77, 174,  42, 245, 176, 200, 235, 187,  60, 131,  83, 153,  97,
   23,  43,   4, 126, 186, 119, 214,  38, 225, 105,  20,  99,  85,  33,  12, 125,
};

void __stdcall encrypt(unsigned char *pt,unsigned char *secu_key,unsigned char *ept){
unsigned char rcon,i,j,aux,aux1,aux2,aux3,round_counter;
unsigned char key[16],block[16];

        for(i=0;i<16;i++)
                block = pt;

        for(i=0;i<16;i++)
                key = secu_key;

        rcon = 1 ;

/*key_addition*/
        for(i=0;i<16;i++)
       block ^= key;

        round_counter = 0xA;

        for(j=0;j
/*substitution_S*/
                for(i=0;i<16;i++)
                        block = S_box[block];

/*enc_shift_row*/
        aux = block[1];
        block[1] = block[5];
        block[5] = block[9];
        block[9] = block[13];
        block[13] = aux;

        aux = block[2];
        aux1 = block[6];
        block[2] = block[10];
        block[6] = block[14];
        block[10] = aux;
        block[14] = aux1;

        aux = block[15];
        block[15] = block[11];
        block[11] = block[7];
        block[7] = block[3];
        block[3] = aux;

        if(j == (round_counter-1)) goto last_round;

/*mix_column*/
/*begins with the mix of column 0*/
        aux1 = block[0] ^ block[1];
        aux = block[0] ^ block[1] ^ block[2] ^ block[3];
        aux2 = block[1] ^ block[2];
        aux3 = block[2] ^ block[3];

/*calc_xtimes*/
        if(aux1<0x80)
                aux1<<= 1;
        else
                aux1 = (aux1<<1) ^ 0x1b;
        if(aux2<0x80)
                aux2 <<= 1;
        else
                aux2 = (aux2<<1) ^ 0x1b;
        if(aux3<0x80)
                aux3 <<= 1;
        else
                aux3 = (aux3<<1) ^ 0x1b;

        block[0] ^= aux ^ aux1;
        block[1] ^= aux ^ aux2;
        block[2] ^= aux ^ aux3;
        block[3] = block[0] ^ block[1] ^ block[2] ^ aux;

/*mix of column 1*/
        aux1 = block[4] ^ block[5];
        aux = block[4] ^ block[5] ^ block[6] ^ block[7];
        aux2 = block[5] ^ block[6];
        aux3 = block[6] ^ block[7];

/*calc_xtimes*/
        if(aux1<0x80)
                aux1<<= 1;
        else
                aux1 = (aux1<<1) ^ 0x1b;
        if(aux2<0x80)
                aux2 <<= 1;
        else
                aux2 = (aux2<<1) ^ 0x1b;
        if(aux3<0x80)
                aux3 <<= 1;
        else
                aux3 = (aux3<<1) ^ 0x1b;

        block[4] ^= aux ^ aux1;
        block[5] ^= aux ^ aux2;
        block[6] ^= aux ^ aux3;
        block[7] = block[4] ^ block[5] ^ block[6] ^ aux;

/*mix of column 2*/
        aux1 = block[8] ^ block[9];
        aux = block[8] ^ block[9] ^ block[10] ^ block[11];
        aux2 = block[9] ^ block[10];
        aux3 = block[10] ^ block[11];

/*calc_xtimes*/
        if(aux1<0x80)
                aux1<<= 1;
        else
                aux1 = (aux1<<1) ^ 0x1b;
        if(aux2<0x80)
                aux2 <<= 1;
        else
                aux2 = (aux2<<1) ^ 0x1b;
        if(aux3<0x80)
                aux3 <<= 1;
        else
                aux3 = (aux3<<1) ^ 0x1b;

        block[8] ^= aux ^ aux1;
        block[9] ^= aux ^ aux2;
        block[10] ^= aux ^ aux3;
        block[11] = block[8] ^ block[9] ^ block[10] ^ aux;

/*mix of column 3*/
        aux1 = block[12] ^ block[13];
        aux = block[12] ^ block[13] ^ block[14] ^ block[15];
        aux2 = block[13] ^ block[14];
        aux3 = block[14] ^ block[15];

/*calc_xtimes*/
        if(aux1<0x80)
                aux1<<= 1;
        else
                aux1 = (aux1<<1) ^ 0x1b;
        if(aux2<0x80)
                aux2 <<= 1;
        else
                aux2 = (aux2<<1) ^ 0x1b;
        if(aux3<0x80)
                aux3 <<= 1;
        else
                aux3 = (aux3<<1) ^ 0x1b;

        block[12] ^= aux ^ aux1;
        block[13] ^= aux ^ aux2;
        block[14] ^= aux ^ aux3;
        block[15] = block[12] ^ block[13] ^ block[14] ^ aux;

last_round:
/*enc_key_schedule*/
/*calc_s_table_based_values*/
        key[0x0] ^= S_box[key[0xD]];
        key[0x1] ^= S_box[key[0xE]];
        key[0x2] ^= S_box[key[0xF]];
        key[0x3] ^= S_box[key[0xC]];

        key[0] ^= rcon;

        if(rcon<0x80)
                rcon <<= 1;
        else
                rcon = (rcon<<1) ^ 0x1b;

        for(i=0;i<12;i++)
                key[i+4] ^= key;

/*key_addition*/
        for(i=0;i<16;i++)
       block ^= key;
        }        /*end of encrypt*/

        for(i=0;i<16;i++)
                ept = block;

}

void __stdcall decrypt(unsigned char *ept,unsigned char *secu_key,unsigned char *pt){
unsigned char key[16],block[16];
unsigned char rcon,i,j,aux,aux1,aux2,aux3,round_counter,d0,d1,d2;

        for(i=0;i<16;i++)
                block = ept;

        for(i=0;i<16;i++)
                key = secu_key;

        rcon = 1;
        round_counter = 10;
        for(j=0;j /*enc_key_schedule*/
/*calc_s_table_based_values*/
        key[0x0] ^= S_box[key[0xD]];
        key[0x1] ^= S_box[key[0xE]];
        key[0x2] ^= S_box[key[0xF]];
        key[0x3] ^= S_box[key[0xC]];

        key[0] ^= rcon;

        if(rcon<0x80)
                rcon <<= 1;
        else
                rcon = (rcon<<1) ^ 0x1b;

        for(i=0;i<12;i++)
                key[i+4] ^= key;
        }        /*end of init_decryption_key*/

        rcon = 0x36;

/*key_addition*/
        for(i=0;i<16;i++)
       block ^= key;

        round_counter = 10;

/*substitution_Si*/
        for(i=0;i<16;i++)
                block = Si_box[block];

/*dec_shift_row*/
        aux = block[0xd];        /*Rotates right row 1 one position*/
        block[0xd] = block[9];
        block[9] = block[5];
        block[5] = block[1];
        block[1] = aux;

        aux = block[0xa];        /*Rotates right row 2 one position*/
        aux1 = block[0xe];
        block[0xa] = block[2];
        block[0xe] = block[6];
        block[2] = aux;
        block[6] = aux1;

        aux = block[3];                /*Rotates right row 3 one position*/
        block[3] = block[7];
        block[7] = block[0xb];
        block[0xb] = block[0xf];
        block[0xf] = aux;

/*dec_key_schedule*/
/*first column3 ^= column2*/
        key[0xc] ^= key[8];
        key[0xd] ^= key[9];
        key[0xe] ^= key[0xa];
        key[0xf] ^= key[0xb];
/*column2 ^= column1*/
        key[8] ^= key[4];
        key[9] ^= key[5];
        key[0xa] ^= key[6];
        key[0xb] ^= key[7];
/*first column1 ^= column0*/
        key[4] ^= key[0];
        key[5] ^= key[1];
        key[6] ^= key[2];
        key[7] ^= key[3];

        key[0] ^= rcon;
        if(rcon & 0x1)
                rcon = 0x80;
        else
                rcon >>= 1;

/*calc_s_table_based_values*/
        key[0x0] ^= S_box[key[0xD]];
        key[0x1] ^= S_box[key[0xE]];
        key[0x2] ^= S_box[key[0xF]];
        key[0x3] ^= S_box[key[0xC]];

/*key_addition*/
        for(i=0;i<16;i++)
       block ^= key;

        for(j=0;j<(round_counter-1);j++){
/*inv_mix_column*/
/*FIRST column*/
        aux = block[0] ^ block[1] ^ block[2] ^ block[3];

        aux1 = block[0] ^ block[2];
        if(aux1<0x80)
                aux1 <<= 1;
        else
                aux1 = (aux1<<1) ^ 0x1b;

        aux2 = block[1] ^ block[3];
        if(aux2<0x80)
                aux2 <<= 1;
        else
                aux2 = (aux2<<1) ^ 0x1b;

        aux3 = aux1 ^ aux2;
        if(aux3<0x80)
                aux3 <<= 1;
        else
                aux3 = (aux3<<1) ^ 0x1b;
        if(aux3<0x80)
                aux3 <<= 1;
        else
                aux3 = (aux3<<1) ^ 0x1b;

        aux3 ^= aux;

        d0 = block[0] ^ block[1] ^ aux1;
        if(d0<0x80)
                d0 <<= 1;
        else
                d0 = (d0<<1) ^ 0x1b;

        d1 = block[1] ^ block[2] ^ aux2;
        if(d1<0x80)
                d1 <<= 1;
        else
                d1 = (d1<<1) ^ 0x1b;

        d2 = block[2] ^ block[3] ^ aux1;
        if(d2<0x80)
                d2 <<= 1;
        else
                d2 = (d2<<1) ^ 0x1b;

        block[0] ^= d0 ^ aux3;
        block[1] ^= d1 ^ aux3;
        block[2] ^= d2 ^ aux3;
        block[3] = block[0] ^ block[1] ^ block[2] ^ aux;

/*SECOND column*/
        aux = block[4] ^ block[5] ^ block[6] ^ block[7];

        aux1 = block[4] ^ block[6];
        if(aux1<0x80)
                aux1 <<= 1;
        else
                aux1 = (aux1<<1) ^ 0x1b;

        aux2 = block[5] ^ block[7];
        if(aux2<0x80)
                aux2 <<= 1;
        else
                aux2 = (aux2<<1) ^ 0x1b;

        aux3 = aux1 ^ aux2;
        if(aux3<0x80)
                aux3 <<= 1;
        else
                aux3 = (aux3<<1) ^ 0x1b;
        if(aux3<0x80)
                aux3 <<= 1;
        else
                aux3 = (aux3<<1) ^ 0x1b;

        aux3 ^= aux;

        d0 = block[4] ^ block[5] ^ aux1;
        if(d0<0x80)
                d0 <<= 1;
        else
                d0 = (d0<<1) ^ 0x1b;

        d1 = block[5] ^ block[6] ^ aux2;
        if(d1<0x80)
                d1 <<= 1;
        else
                d1 = (d1<<1) ^ 0x1b;

        d2 = block[6] ^ block[7] ^ aux1;
        if(d2<0x80)
                d2 <<= 1;
        else
                d2 = (d2<<1) ^ 0x1b;

        block[4] ^= d0 ^ aux3;
        block[5] ^= d1 ^ aux3;
        block[6] ^= d2 ^ aux3;
        block[7] = block[4] ^ block[5] ^ block[6] ^ aux;

/*THIRD column*/
        aux = block[8] ^ block[9] ^ block[10] ^ block[11];

        aux1 = block[8] ^ block[10];
        if(aux1<0x80)
                aux1 <<= 1;
        else
                aux1 = (aux1<<1) ^ 0x1b;

        aux2 = block[9] ^ block[11];
        if(aux2<0x80)
                aux2 <<= 1;
        else
                aux2 = (aux2<<1) ^ 0x1b;

        aux3 = aux1 ^ aux2;
        if(aux3<0x80)
                aux3 <<= 1;
        else
                aux3 = (aux3<<1) ^ 0x1b;
        if(aux3<0x80)
                aux3 <<= 1;
        else
                aux3 = (aux3<<1) ^ 0x1b;

        aux3 ^= aux;

        d0 = block[8] ^ block[9] ^ aux1;
        if(d0<0x80)
                d0 <<= 1;
        else
                d0 = (d0<<1) ^ 0x1b;

        d1 = block[9] ^ block[10] ^ aux2;
        if(d1<0x80)
                d1 <<= 1;
        else
                d1 = (d1<<1) ^ 0x1b;

        d2 = block[10] ^ block[11] ^ aux1;
        if(d2<0x80)
                d2 <<= 1;
        else
                d2 = (d2<<1) ^ 0x1b;

        block[8] ^= d0 ^ aux3;
        block[9] ^= d1 ^ aux3;
        block[10] ^= d2 ^ aux3;
        block[11] = block[8] ^ block[9] ^ block[10] ^ aux;

/*LAST column*/
        aux = block[12] ^ block[13] ^ block[14] ^ block[15];

        aux1 = block[12] ^ block[14];
        if(aux1<0x80)
                aux1 <<= 1;
        else
                aux1 = (aux1<<1) ^ 0x1b;

        aux2 = block[13] ^ block[15];
        if(aux2<0x80)
                aux2 <<= 1;
        else
                aux2 = (aux2<<1) ^ 0x1b;

        aux3 = aux1 ^ aux2;
        if(aux3<0x80)
                aux3 <<= 1;
        else
                aux3 = (aux3<<1) ^ 0x1b;
        if(aux3<0x80)
                aux3 <<= 1;
        else
                aux3 = (aux3<<1) ^ 0x1b;

        aux3 ^= aux;

        d0 = block[12] ^ block[13] ^ aux1;
        if(d0<0x80)
                d0 <<= 1;
        else
                d0 = (d0<<1) ^ 0x1b;

        d1 = block[13] ^ block[14] ^ aux2;
        if(d1<0x80)
                d1 <<= 1;
        else
                d1 = (d1<<1) ^ 0x1b;

        d2 = block[14] ^ block[15] ^ aux1;
        if(d2<0x80)
                d2 <<= 1;
        else
                d2 = (d2<<1) ^ 0x1b;

        block[12] ^= d0 ^ aux3;
        block[13] ^= d1 ^ aux3;
        block[14] ^= d2 ^ aux3;
        block[15] = block[12] ^ block[13] ^ block[14] ^ aux;

dec_first_round:
/*substitution_Si*/
        for(i=0;i<16;i++)
                block = Si_box[block];

/*dec_shift_row*/
        aux = block[0xd];        /*Rotates right row 1 one position*/
        block[0xd] = block[9];
        block[9] = block[5];
        block[5] = block[1];
        block[1] = aux;

        aux = block[0xa];        /*Rotates right row 2 one position*/
        aux1 = block[0xe];
        block[0xa] = block[2];
        block[0xe] = block[6];
        block[2] = aux;
        block[6] = aux1;

        aux = block[3];                /*Rotates right row 3 one position*/
        block[3] = block[7];
        block[7] = block[0xb];
        block[0xb] = block[0xf];
        block[0xf] = aux;

/*dec_key_schedule*/
/*first column3 ^= column2*/
        key[0xc] ^= key[8];
        key[0xd] ^= key[9];
        key[0xe] ^= key[0xa];
        key[0xf] ^= key[0xb];
/*column2 ^= column1*/
        key[8] ^= key[4];
        key[9] ^= key[5];
        key[0xa] ^= key[6];
        key[0xb] ^= key[7];
/*first column1 ^= column0*/
        key[4] ^= key[0];
        key[5] ^= key[1];
        key[6] ^= key[2];
        key[7] ^= key[3];

        key[0] ^= rcon;
        if(rcon & 0x1)
                rcon = 0x80;
        else
                rcon >>= 1;

/*calc_s_table_based_values*/
        key[0x0] ^= S_box[key[0xD]];
        key[0x1] ^= S_box[key[0xE]];
        key[0x2] ^= S_box[key[0xF]];
        key[0x3] ^= S_box[key[0xC]];

/*key_addition*/
        for(i=0;i<16;i++)
       block ^= key;
        }        /*end of for loop*/

        for(i=0;i<16;i++)
                pt = block;
}        /*end of decrypt*/
ǰÊÀ½ñÉú
5Â¥2013-03-11 11:21:53
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

zx521

½ð³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
3Â¥: Originally posted by jjdg at 2013-03-11 00:42:11
Ö±½Ó°Ù¶È»ògoogleÏàÓ¦´úÂ룬Ȼºó×Ô¼ºÐ´¸öµ÷Óò»¾ÍÍêÁË

£¬ÔÝʱûÕÒµ½×¢½â°æµÄ- -
×Ô¼º²»Å¬Á¦£¬›]ÈËÌæÄãˆÔ?Š
6Â¥2013-03-11 17:22:31
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

¿¨¿¨getli

гæ (³õÈëÎÄ̳)

ÕÒµ½ÁËûÓУ¬ÄÜ¿¿±³¸øÎÒÒ»·ÝÂ𣬴ø×¢Ê͵ÄAES,ÖØ³ê¸Ðл
7Â¥2016-09-18 17:03:17
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ zx521 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[»ù½ðÉêÇë] ÇàC×ÊÖúÃû¶î´ó·ùÔö¼Ó£¡ +9 Î÷ºù«³´¼¦µ° 2026-05-13 13/650 2026-05-15 00:18 by jackeychen7922
[ÎÄѧ·¼²ÝÔ°] ·ç°Ñĵµ¤´µÅÜÁË +4 myrtle 2026-05-12 7/350 2026-05-14 23:58 by myrtle
[½Ìʦ֮¼Ò] ½Ìѧ¿Î¼þÄã»á¸øÍ¬Ñ§Âð +8 ˶ʿÑо¿ÉúÂð 2026-05-13 8/400 2026-05-14 22:23 by ³£¹æÁ¤Çà
[¿¼²©] 26Ó¦½ì±ÏÒµÉú¿¼²©ÇóÖú +3 woÒ»¶¨Éϰ¶ 2026-05-13 3/150 2026-05-14 21:47 by Ã÷º£ÌìÑÄ
[»ù½ðÉêÇë] ÖØ°õ£¡ÇàÄê¿ÆÑ§»ù½ðÏîÄ¿£¨CÀࣩ×ÊÖúÔö·ùÔ¤¼Æ³¬¹ý50% +5 Ë®ºÍÄ಻ÊÇË®Äà 2026-05-13 7/350 2026-05-14 20:57 by Ë®ºÍÄ಻ÊÇË®Äà
[Óлú½»Á÷] ÇóÖú2£¬4-¶þÂÈ-5-à×़×È©µÄºÏ³É·½·¨ 20+3 ¹â³Ô²»À­ 2026-05-14 5/250 2026-05-14 20:15 by Ò»Çж¼Êǿչ¤
[¸ß·Ö×Ó] ±¾ÈË×î½üÌ«ÏÐÁË£¬Ë­ÓÐÎÊÌâ¿ÉÒÔÌᣬÿÌì»áͳһ»Ø¸´ +8 Ò»Çж¼Êǿչ¤ 2026-05-12 19/950 2026-05-14 20:03 by Ò»Çж¼Êǿչ¤
[¿¼²©] É격×Ô¼ö +4 ʳƷµÄ³È×Ó 2026-05-09 6/300 2026-05-14 16:05 by great1919
[»ù½ðÉêÇë] ÕâÄêͷûÓÐÕÒµ½º­ÆÀר¼Ò£¬»¹ÓÐÖÐÃæÉϵĿÉÄÜÂð +7 dd921ww 2026-05-12 8/400 2026-05-14 14:22 by dd921ww
[¿¼²©] ²ÄÁÏÀàÖ»ÓÐһƪ×ÛÊöÄÜÉ격ô +4 ÀÖåÐÒ£¹È 2026-05-13 4/200 2026-05-14 12:05 by zhyzzh
[»ù½ðÉêÇë] ÇëÎÊ´óÀÐb0816ÆÀÍêÁËÂð +3 ÊÐÃñ»ªÄÏ»¢ 2026-05-12 7/350 2026-05-14 07:41 by ÊÐÃñ»ªÄÏ»¢
[»ù½ðÉêÇë] ¾«»ªIIIÆÀÉó¸ÐÊÜ-ÆÀÉó¸ÐÊÜ-ÆÀÉó¸ÐÊÜ +12 ferrarichen 2026-05-11 16/800 2026-05-14 07:33 by 2000zf36392
[ÂÛÎÄͶ¸å] Óдø·¢ÂÛÎĵÄÂð +3 ɽé«Ö®Êõ 2026-05-09 3/150 2026-05-13 17:56 by Cyhcl2629
[˶²©¼ÒÔ°] µ¼Ê¦¸÷ÖÖ²Ù×÷¶ñÐÄÕ¦°ì +11 ²Ô°×µÄСÇàÌì 2026-05-09 13/650 2026-05-13 17:11 by ÁùÁ½·ÏÍ­
[ÂÛÎÄͶ¸å] »¤ÀíÂÛÎÄ ½úÉý +5 Taylor1990, 2026-05-08 5/250 2026-05-13 14:40 by tegsgjy20
[ÂÛÎÄͶ¸å] ÇóÖú´óÀÐsciͶ¸åÄĸöºÃÖÐ +3 ½­ãä188 2026-05-12 4/200 2026-05-13 14:35 by ½­ãä188
[¿¼²©] Î÷ÄÏ´óѧ¿¼ºËÖÆ²©Ê¿ +3 lijunjie84 2026-05-11 6/300 2026-05-12 18:09 by lijunjie84
[ÎÄѧ·¼²ÝÔ°] ´°±ß³õÏĵÄСÓê +7 °¢ÃÀ_Lml888 2026-05-09 10/500 2026-05-12 15:27 by °¢ÃÀ_Lml888
[¿¼²©] ÏÖÔÚ²»ÖªµÀÔõô°ì£¬¸Ð¾õºÜÍ´¿à +4 qweww 2026-05-11 5/250 2026-05-11 20:23 by Oversize
[¿¼²©] ÉúÎïѧ²©Ê¿ +3 17749024330 2026-05-08 6/300 2026-05-11 14:29 by 17749024330
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û