锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久国产精品麻豆ai换脸,在线免费观看日本一区,欧美日韩高清一区http://m.shnenglu.com/aaxron/category/15782.html璁板綍淇鐨勫嵃璁? zh-cnMon, 30 Aug 2021 23:57:23 GMTMon, 30 Aug 2021 23:57:23 GMT60鍗曟枃浠禔ES鍔犺В瀵嗙畻娉?/title><link>http://m.shnenglu.com/aaxron/archive/2021/08/30/217802.html</link><dc:creator>澶╀笅</dc:creator><author>澶╀笅</author><pubDate>Mon, 30 Aug 2021 13:39:00 GMT</pubDate><guid>http://m.shnenglu.com/aaxron/archive/2021/08/30/217802.html</guid><wfw:comment>http://m.shnenglu.com/aaxron/comments/217802.html</wfw:comment><comments>http://m.shnenglu.com/aaxron/archive/2021/08/30/217802.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/aaxron/comments/commentRss/217802.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/aaxron/services/trackbacks/217802.html</trackback:ping><description><![CDATA[#pragma once   #include <stdint.h>  //for int8_t #include <string.h>  //for memcmp #include <wmmintrin.h> //for intrinsics for AES-NI //compile using gcc and following arguments: -g;-O0;-Wall;-msse2;-msse;-march=native;-maes //internal stuff   //macros #define DO_ENC_BLOCK(m,k) \     do{\      m = _mm_xor_si128  (m, k[ 0]); \      m = _mm_aesenc_si128 (m, k[ 1]); \      m = _mm_aesenc_si128 (m, k[ 2]); \      m = _mm_aesenc_si128 (m, k[ 3]); \      m = _mm_aesenc_si128 (m, k[ 4]); \      m = _mm_aesenc_si128 (m, k[ 5]); \      m = _mm_aesenc_si128 (m, k[ 6]); \      m = _mm_aesenc_si128 (m, k[ 7]); \      m = _mm_aesenc_si128 (m, k[ 8]); \      m = _mm_aesenc_si128 (m, k[ 9]); \      m = _mm_aesenclast_si128(m, k[10]);\     }while(0)   #define DO_DEC_BLOCK(m,k) \     do{\      m = _mm_xor_si128  (m, k[10+0]); \      m = _mm_aesdec_si128 (m, k[10+1]); \      m = _mm_aesdec_si128 (m, k[10+2]); \      m = _mm_aesdec_si128 (m, k[10+3]); \      m = _mm_aesdec_si128 (m, k[10+4]); \      m = _mm_aesdec_si128 (m, k[10+5]); \      m = _mm_aesdec_si128 (m, k[10+6]); \      m = _mm_aesdec_si128 (m, k[10+7]); \      m = _mm_aesdec_si128 (m, k[10+8]); \      m = _mm_aesdec_si128 (m, k[10+9]); \      m = _mm_aesdeclast_si128(m, k[0]);\     }while(0)   #define AES_128_key_exp(k, rcon) aes_128_key_expansion(k, _mm_aeskeygenassist_si128(k, rcon))   static __m128i aes_128_key_expansion(__m128i key, __m128i keygened) {     keygened = _mm_shuffle_epi32(keygened, _MM_SHUFFLE(3,3,3,3));     key = _mm_xor_si128(key, _mm_slli_si128(key, 4));     key = _mm_xor_si128(key, _mm_slli_si128(key, 4));     key = _mm_xor_si128(key, _mm_slli_si128(key, 4));     return _mm_xor_si128(key, keygened); }   //public API static void aes128_load_key_enc_only(uint8_t *enc_key, __m128i *key_schedule) {     key_schedule[0] = _mm_loadu_si128((const __m128i*) enc_key);     key_schedule[1] = AES_128_key_exp(key_schedule[0], 0x01);     key_schedule[2] = AES_128_key_exp(key_schedule[1], 0x02);     key_schedule[3] = AES_128_key_exp(key_schedule[2], 0x04);     key_schedule[4] = AES_128_key_exp(key_schedule[3], 0x08);     key_schedule[5] = AES_128_key_exp(key_schedule[4], 0x10);     key_schedule[6] = AES_128_key_exp(key_schedule[5], 0x20);     key_schedule[7] = AES_128_key_exp(key_schedule[6], 0x40);     key_schedule[8] = AES_128_key_exp(key_schedule[7], 0x80);     key_schedule[9] = AES_128_key_exp(key_schedule[8], 0x1B);     key_schedule[10] = AES_128_key_exp(key_schedule[9], 0x36); }   static void aes128_load_key(uint8_t *enc_key, __m128i *key_schedule) {     aes128_load_key_enc_only(enc_key, key_schedule);       // generate decryption keys in reverse order.     // k[10] is shared by last encryption and first decryption rounds     // k[0] is shared by first encryption round and last decryption round (and is the original user key)     // For some implementation reasons, decryption key schedule is NOT the encryption key schedule in reverse order     key_schedule[11] = _mm_aesimc_si128(key_schedule[9]);     key_schedule[12] = _mm_aesimc_si128(key_schedule[8]);     key_schedule[13] = _mm_aesimc_si128(key_schedule[7]);     key_schedule[14] = _mm_aesimc_si128(key_schedule[6]);     key_schedule[15] = _mm_aesimc_si128(key_schedule[5]);     key_schedule[16] = _mm_aesimc_si128(key_schedule[4]);     key_schedule[17] = _mm_aesimc_si128(key_schedule[3]);     key_schedule[18] = _mm_aesimc_si128(key_schedule[2]);     key_schedule[19] = _mm_aesimc_si128(key_schedule[1]); }   static void aes128_enc(__m128i *key_schedule, uint8_t *plainText,uint8_t *cipherText) {     __m128i m = _mm_loadu_si128((__m128i *) plainText);     DO_ENC_BLOCK(m,key_schedule);     _mm_storeu_si128((__m128i *) cipherText, m); }   static void aes128_dec(__m128i *key_schedule, uint8_t *cipherText,uint8_t *plainText) {     __m128i m = _mm_loadu_si128((__m128i *) cipherText);     DO_DEC_BLOCK(m,key_schedule);     _mm_storeu_si128((__m128i *) plainText, m); }   //return 0 if no error //1 if encryption failed //2 if decryption failed //3 if both failed static int aes128_self_test(void) {     uint8_t plain[]  = {0x32, 0x43, 0xf6, 0xa8, 0x88, 0x5a, 0x30, 0x8d, 0x31, 0x31, 0x98, 0xa2, 0xe0, 0x37, 0x07, 0x34};     uint8_t enc_key[] = {0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c};     uint8_t cipher[]  = {0x39, 0x25, 0x84, 0x1d, 0x02, 0xdc, 0x09, 0xfb, 0xdc, 0x11, 0x85, 0x97, 0x19, 0x6a, 0x0b, 0x32};     uint8_t computed_cipher[16];     uint8_t computed_plain[16];     int out=0;     __m128i key_schedule[20];     aes128_load_key(enc_key,key_schedule);     aes128_enc(key_schedule,plain,computed_cipher);     aes128_dec(key_schedule,cipher,computed_plain);     if(memcmp(cipher,computed_cipher,sizeof(cipher))) out=1;     if(memcmp(plain,computed_plain,sizeof(plain))) out|=2;     return out; }<img src ="http://m.shnenglu.com/aaxron/aggbug/217802.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/aaxron/" target="_blank">澶╀笅</a> 2021-08-30 21:39 <a href="http://m.shnenglu.com/aaxron/archive/2021/08/30/217802.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀵筼penssl鍋氱殑涓浜涚畝鍗曞皝瑁?/title><link>http://m.shnenglu.com/aaxron/archive/2014/03/21/206266.html</link><dc:creator>澶╀笅</dc:creator><author>澶╀笅</author><pubDate>Fri, 21 Mar 2014 09:40:00 GMT</pubDate><guid>http://m.shnenglu.com/aaxron/archive/2014/03/21/206266.html</guid><wfw:comment>http://m.shnenglu.com/aaxron/comments/206266.html</wfw:comment><comments>http://m.shnenglu.com/aaxron/archive/2014/03/21/206266.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/aaxron/comments/commentRss/206266.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/aaxron/services/trackbacks/206266.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">#include </span><span style="color: #000000">"</span><span style="color: #000000">stdafx.h</span><span style="color: #000000">"</span><span style="color: #000000"><br /><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> GetRSA(RSA </span><span style="color: #000000">**</span><span style="color: #000000">RsaKeys)<br />{<br />    </span><span style="color: #000000">*</span><span style="color: #000000">RsaKeys</span><span style="color: #000000">=</span><span style="color: #000000">RSA_generate_key(RSALEN,RSA_F4,NULL,NULL);<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000">(NULL</span><span style="color: #000000">==*</span><span style="color: #000000">RsaKeys)<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000"> ;<br />}<br /><br /></span><span style="color: #008000">//</span><span style="color: #008000">鍙栧緱縐侀挜</span><span style="color: #008000"><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> GetPrivateKey(RSA </span><span style="color: #000000">*</span><span style="color: #000000">RsaKeys,RSA </span><span style="color: #000000">**</span><span style="color: #000000">Pvtkey)<br />{<br />    </span><span style="color: #000000">*</span><span style="color: #000000">Pvtkey </span><span style="color: #000000">=</span><span style="color: #000000"> RSAPrivateKey_dup(RsaKeys);<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000">(NULL</span><span style="color: #000000">==*</span><span style="color: #000000">Pvtkey)<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">; <br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />}<br /><br /></span><span style="color: #008000">//</span><span style="color: #008000">縐侀挜To鏁版嵁嫻?/span><span style="color: #008000"><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> PrivateKeyToData(RSA </span><span style="color: #000000">*</span><span style="color: #000000">Pvtkey,unsigned </span><span style="color: #0000ff">char</span><span style="color: #000000">*</span><span style="color: #000000"> bufkey)<br />{<br />    BIO</span><span style="color: #000000">*</span><span style="color: #000000"> pBio </span><span style="color: #000000">=</span><span style="color: #000000"> BIO_new(BIO_s_mem());<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (pBio </span><span style="color: #000000">==</span><span style="color: #000000"> NULL) {<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br />    }<br />    memset(bufkey,</span><span style="color: #000000">'</span><span style="color: #000000">\0</span><span style="color: #000000">'</span><span style="color: #000000">,RSALEN);<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000">( i2d_RSAPrivateKey_bio(pBio,Pvtkey) </span><span style="color: #000000"><</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000"> ) {<br />        BIO_free(pBio);    <br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br />    }<br />    BIO_read(pBio,bufkey,RSALEN);<br /><br />    BIO_free(pBio);    <br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />}<br /><br /></span><span style="color: #008000">//</span><span style="color: #008000">鏁版嵁嫻乀o縐侀挜</span><span style="color: #008000"><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> DataToPrivateKey(unsigned </span><span style="color: #0000ff">char</span><span style="color: #000000">*</span><span style="color: #000000"> bufkey,RSA </span><span style="color: #000000">**</span><span style="color: #000000">Pvtkey)<br />{<br />    BIO </span><span style="color: #000000">*</span><span style="color: #000000">pBio </span><span style="color: #000000">=</span><span style="color: #000000"> BIO_new(BIO_s_mem());<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (pBio </span><span style="color: #000000">==</span><span style="color: #000000"> NULL) {<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br />    }<br />    BIO_write(pBio,bufkey,RSALEN);<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000">( NULL </span><span style="color: #000000">==</span><span style="color: #000000"> d2i_RSAPrivateKey_bio(pBio,Pvtkey)) {<br />        BIO_free(pBio);<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br />    }<br />    BIO_free(pBio);<br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />}<br /><br /></span><span style="color: #008000">//</span><span style="color: #008000">鍙栧緱鍏挜</span><span style="color: #008000"><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> GetPublicKey(RSA </span><span style="color: #000000">*</span><span style="color: #000000">RsaKeys,RSA </span><span style="color: #000000">**</span><span style="color: #000000">Pubkey)<br />{<br />    </span><span style="color: #000000">*</span><span style="color: #000000">Pubkey </span><span style="color: #000000">=</span><span style="color: #000000"> RSAPublicKey_dup(RsaKeys);<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000">(NULL</span><span style="color: #000000">==*</span><span style="color: #000000">Pubkey)<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">; <br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />}<br /><br /><br /></span><span style="color: #008000">//</span><span style="color: #008000">鍏挜To鏁版嵁嫻?/span><span style="color: #008000"><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> PublicKeyToData(RSA </span><span style="color: #000000">*</span><span style="color: #000000">Pubkey,unsigned </span><span style="color: #0000ff">char</span><span style="color: #000000">*</span><span style="color: #000000"> bufkey)<br />{<br />    BIO </span><span style="color: #000000">*</span><span style="color: #000000">pBio </span><span style="color: #000000">=</span><span style="color: #000000"> BIO_new(BIO_s_mem());<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (pBio </span><span style="color: #000000">==</span><span style="color: #000000">NULL) {<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br />    }<br />    memset(bufkey,</span><span style="color: #000000">'</span><span style="color: #000000">\0</span><span style="color: #000000">'</span><span style="color: #000000">,RSALEN);<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000">(i2d_RSAPublicKey_bio(pBio,Pubkey) </span><span style="color: #000000"><</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">) {<br />        BIO_free(pBio);<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br />    }<br />    BIO_read(pBio,bufkey,RSALEN);<br />    BIO_free(pBio);<br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />}<br /><br /></span><span style="color: #008000">//</span><span style="color: #008000">鏁版嵁嫻乀o鍏挜</span><span style="color: #008000"><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> DataToPublicKey(unsigned </span><span style="color: #0000ff">char</span><span style="color: #000000">*</span><span style="color: #000000">bufkey,RSA </span><span style="color: #000000">**</span><span style="color: #000000">Pubkey)<br />{<br />    BIO    </span><span style="color: #000000">*</span><span style="color: #000000"> pBio</span><span style="color: #000000">=</span><span style="color: #000000">BIO_new(BIO_s_mem());<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (pBio </span><span style="color: #000000">==</span><span style="color: #000000">NULL)<br />    {<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br />    }<br />    BIO_write(pBio,bufkey,RSALEN);<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000">( d2i_RSAPublicKey_bio(pBio,Pubkey) </span><span style="color: #000000"><</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000"> ) {<br />        BIO_free(pBio);    <br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br />    }<br />    BIO_free(pBio);    <br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;    <br />}<br /><br /></span><span style="color: #008000">/*</span><span style="color: #008000">鍏挜鍔犲瘑->縐侀挜瑙e瘑</span><span style="color: #008000">*/</span><span style="color: #000000"><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> RSAPublicEncrypt(RSA </span><span style="color: #000000">*</span><span style="color: #000000">Publickey, </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">From, </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">To)<br />{<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> len</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<br />    len </span><span style="color: #000000">=</span><span style="color: #000000"> RSA_size(Publickey) </span><span style="color: #000000">-</span><span style="color: #000000">11</span><span style="color: #000000">;<br /><br />    </span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000"> </span><span style="color: #000000">==</span><span style="color: #000000"> (len</span><span style="color: #000000">=</span><span style="color: #000000">RSA_public_encrypt(len,(unsigned </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">)From,(unsigned </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">)To,Publickey,RSA_PKCS1_PADDING)) )<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br /><br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> len;<br />}<br /><br /><br /></span><span style="color: #008000">/*</span><span style="color: #008000">縐侀挜瑙e瘑<-鍏挜鍔犲瘑</span><span style="color: #008000">*/</span><span style="color: #000000"><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> RSAPrivateDecrypt(RSA </span><span style="color: #000000">*</span><span style="color: #000000">Privtekey, </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">From, </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">To)<br />{<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000"> </span><span style="color: #000000">==</span><span style="color: #000000"> (RSA_private_decrypt(RSALEN</span><span style="color: #000000">/</span><span style="color: #000000">8</span><span style="color: #000000">,(unsigned </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">)From,(unsigned </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">)To,Privtekey,RSA_PKCS1_PADDING)))<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br /><br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />}<br /><br /><br /></span><span style="color: #008000">/*</span><span style="color: #008000">縐侀挜鍔犲瘑->鍏挜瑙e瘑</span><span style="color: #008000">*/</span><span style="color: #000000"><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> RSAPrivateEncrypt(RSA </span><span style="color: #000000">*</span><span style="color: #000000">Privtekey, </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">From, </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">To)<br />{<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> len </span><span style="color: #000000">=</span><span style="color: #000000"> RSA_size(Privtekey)</span><span style="color: #000000">-</span><span style="color: #000000">11</span><span style="color: #000000">;<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000"> </span><span style="color: #000000">==</span><span style="color: #000000"> (len </span><span style="color: #000000">=</span><span style="color: #000000"> RSA_private_encrypt(len,(unsigned </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">)From,(unsigned </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">)To,Privtekey,RSA_PKCS1_PADDING)))<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br /><br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> len;<br />}<br /><br /><br /></span><span style="color: #008000">/*</span><span style="color: #008000">鍏挜瑙e瘑<-縐侀挜鍔犲瘑</span><span style="color: #008000">*/</span><span style="color: #000000"><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> RSAPublicDecrypt(RSA </span><span style="color: #000000">*</span><span style="color: #000000">Publickey, </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">From, </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">To)<br />{<br />    </span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000"> </span><span style="color: #000000">==</span><span style="color: #000000"> (RSA_public_decrypt(RSALEN</span><span style="color: #000000">/</span><span style="color: #000000">8</span><span style="color: #000000">,(unsigned </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">)From,(unsigned </span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">)To,Publickey,RSA_PKCS1_PADDING)) )<br />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;<br /><br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />}<br /><br /><br /><br /></span><span style="color: #008000">//</span><span style="color: #008000">void DesEncrypt(char *Key,char *Msg, char *Result,int Length)<br /></span><span style="color: #008000">//</span><span style="color: #008000">{<br /></span><span style="color: #008000">//</span><span style="color: #008000">    int             n=0;<br /></span><span style="color: #008000">//</span><span style="color: #008000">    DES_cblock      desblock;<br /></span><span style="color: #008000">//</span><span style="color: #008000">    DES_key_schedule schedule;<br /></span><span style="color: #008000">//</span><span style="color: #008000"><br /></span><span style="color: #008000">//</span><span style="color: #008000">    DES_string_to_key(Key,&desblock);<br /></span><span style="color: #008000">//</span><span style="color: #008000">    DES_set_key_checked( &desblock, &schedule );<br /></span><span style="color: #008000">//</span><span style="color: #008000"><br /></span><span style="color: #008000">//</span><span style="color: #008000">    DES_cfb64_encrypt( (unsigned char *)Msg, (unsigned char *)Result,<br /></span><span style="color: #008000">//</span><span style="color: #008000">        Length, &schedule, &desblock, &n, DES_ENCRYPT );<br /></span><span style="color: #008000">//</span><span style="color: #008000"><br /></span><span style="color: #008000">//</span><span style="color: #008000">}<br /></span><span style="color: #008000">//</span><span style="color: #008000"><br /></span><span style="color: #008000">//</span><span style="color: #008000"><br /></span><span style="color: #008000">//</span><span style="color: #008000">void DesDecrypt( char *Key, char *Msg, char *Result,int Length)<br /></span><span style="color: #008000">//</span><span style="color: #008000">{<br /></span><span style="color: #008000">//</span><span style="color: #008000"><br /></span><span style="color: #008000">//</span><span style="color: #008000">    int             n=0;<br /></span><span style="color: #008000">//</span><span style="color: #008000"><br /></span><span style="color: #008000">//</span><span style="color: #008000">    DES_cblock      desblock;<br /></span><span style="color: #008000">//</span><span style="color: #008000">    DES_key_schedule schedule;<br /></span><span style="color: #008000">//</span><span style="color: #008000"><br /></span><span style="color: #008000">//</span><span style="color: #008000">    DES_string_to_key(Key,&desblock);<br /></span><span style="color: #008000">//</span><span style="color: #008000">    DES_set_key_checked( &desblock, &schedule );<br /></span><span style="color: #008000">//</span><span style="color: #008000"><br /></span><span style="color: #008000">//</span><span style="color: #008000">    DES_cfb64_encrypt( (unsigned char *) Msg, (unsigned char *)Result,<br /></span><span style="color: #008000">//</span><span style="color: #008000">        Length, &schedule, &desblock, &n, DES_DECRYPT );<br /></span><span style="color: #008000">//</span><span style="color: #008000"><br /></span><span style="color: #008000">//</span><span style="color: #008000">}</span><span style="color: #008000"><br /></span><span style="color: #000000"><br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> DESGenerateKey(</span><span style="color: #0000ff">char</span><span style="color: #000000"> </span><span style="color: #000000">*</span><span style="color: #000000">pKey)<br />{<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> nLen</span><span style="color: #000000">=</span><span style="color: #000000">33</span><span style="color: #000000">;<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> flag</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> i,k</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<br /><br />    srand((unsigned)time(NULL));<br />    </span><span style="color: #0000ff">for</span><span style="color: #000000">(i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000"><</span><span style="color: #000000">nLen</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />    {<br />        flag</span><span style="color: #000000">=</span><span style="color: #000000">rand()</span><span style="color: #000000">%</span><span style="color: #000000">2</span><span style="color: #000000">;<br />        </span><span style="color: #0000ff">if</span><span style="color: #000000">(flag)<br />            pKey[k</span><span style="color: #000000">++</span><span style="color: #000000">]</span><span style="color: #000000">=</span><span style="color: #000000">'</span><span style="color: #000000">A</span><span style="color: #000000">'</span><span style="color: #000000">+</span><span style="color: #000000">rand()</span><span style="color: #000000">%</span><span style="color: #000000">26</span><span style="color: #000000">;<br />        </span><span style="color: #0000ff">else</span><span style="color: #000000"><br />            pKey[k</span><span style="color: #000000">++</span><span style="color: #000000">]</span><span style="color: #000000">=</span><span style="color: #000000">'</span><span style="color: #000000">a</span><span style="color: #000000">'</span><span style="color: #000000">+</span><span style="color: #000000">rand()</span><span style="color: #000000">%</span><span style="color: #000000">26</span><span style="color: #000000">;<br />    }<br /><br />    pKey[k]</span><span style="color: #000000">=</span><span style="color: #000000">'</span><span style="color: #000000">\0</span><span style="color: #000000">'</span><span style="color: #000000">;<br />}</span></div><img src ="http://m.shnenglu.com/aaxron/aggbug/206266.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/aaxron/" target="_blank">澶╀笅</a> 2014-03-21 17:40 <a href="http://m.shnenglu.com/aaxron/archive/2014/03/21/206266.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀵嗙爜瀛?鍗?銆丱penssl鐨勫畨瑁?/title><link>http://m.shnenglu.com/aaxron/archive/2011/06/19/148949.html</link><dc:creator>澶╀笅</dc:creator><author>澶╀笅</author><pubDate>Sun, 19 Jun 2011 02:20:00 GMT</pubDate><guid>http://m.shnenglu.com/aaxron/archive/2011/06/19/148949.html</guid><wfw:comment>http://m.shnenglu.com/aaxron/comments/148949.html</wfw:comment><comments>http://m.shnenglu.com/aaxron/archive/2011/06/19/148949.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/aaxron/comments/commentRss/148949.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/aaxron/services/trackbacks/148949.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">openssl綆浠?br />openssl鏄竴涓姛鑳戒赴瀵屼笖鑷寘鍚殑寮婧愬畨鍏ㄥ伐鍏風(fēng)銆傚畠鎻愪緵鐨勪富瑕佸姛鑳芥湁錛歋SL鍗忚瀹炵幇(鍖呮嫭SSLv2銆丼SLv3鍜孴LSv1)銆佸ぇ閲忚蔣綆楁硶(瀵圭О/闈炲縐?鎽樿)銆佸ぇ鏁拌繍綆椼侀潪瀵圭О綆楁硶瀵嗛挜鐢熸垚銆丄SN.1緙栬В鐮佸簱銆佽瘉涔﹁姹?PKCS10)緙栬В鐮併佹暟瀛楄瘉涔︾紪瑙g爜銆丆RL緙栬В鐮併丱CSP鍗忚銆佹暟瀛楄瘉涔﹂獙璇併丳KCS7鏍囧噯瀹炵幇鍜孭KCS12涓漢鏁板瓧璇佷功鏍煎紡瀹炵幇絳夊姛鑳姐?br /><br />openssl閲囩敤C璇█浣滀負(fù)寮鍙戣璦錛岃繖浣垮緱瀹冨叿鏈変紭縐鐨勮法騫沖彴鎬ц兘銆俹penssl鏀寔Linux銆乁NIX銆亀indows銆丮ac絳夊鉤鍙般俹penssl鐩墠鏈鏂扮殑鐗堟湰鏄痮penssl-</span><span style="color: #000000; ">1.0</span><span style="color: #000000; ">.0d.<br /><br />瀹樻柟緗戝潃錛歨ttp://www.openssl.org/<br /><br />linux涓嬬殑瀹夎錛?br />wget http://www.openssl.org/source/openssl-</span><span style="color: #000000; ">1.0</span><span style="color: #000000; ">.0d.tar.gz<br />tar xvzf openssl-</span><span style="color: #000000; ">1.0</span><span style="color: #000000; ">.0d.tar.gz<br />cd openssl-</span><span style="color: #000000; ">1.0</span><span style="color: #000000; ">.0d<br />濡傛灉闇瑕亃lib鍘嬬緝妯″潡鐨勮瘽錛岃繕闇瑕佸厛瀹夎zlib<br />鐒跺悗錛?br />./config --prefix</span><span style="color: #000000; ">=</span><span style="color: #000000; ">/usr/local/ssl shared zlib-dynamic<br /><br />涓嶉渶瑕佸氨鐩存帴鐢細(xì)<br />./config --prefix</span><span style="color: #000000; ">=</span><span style="color: #000000; ">/usr/local/ssl shared no-zlib<br /><br />鏇村璇︾粏甯姪璇瘋繍琛?br />./config --help<br /><br />鐒跺悗錛?br />make && make install<br /><br />娌¢棶棰樼殑璇濆氨浼?xì)涓璺窇涓嬪幓錛屽彲浠ュ幓娉℃澂鍜栧暋錛屾場涓錛屽洖鏉ュ樊涓嶅灝卞ソ浜嗐?br /><br />ARM騫沖彴鐨勪氦鍙夌紪璇戝畨瑁咃細(xì)<br />緙栬瘧錛歰penssl<br />./config no-asm no-zlib --prefix</span><span style="color: #000000; ">=</span><span style="color: #000000; ">/arm/openssl os/compiler:arm-linux-gcc<br /><br />淇敼錛?br />CC</span><span style="color: #000000; ">=</span><span style="color: #000000; "> arm-linux-gcc<br />AR</span><span style="color: #000000; ">=</span><span style="color: #000000; "> arm-linux-ar $(ARFLAGS) r<br />RANLIB</span><span style="color: #000000; ">=</span><span style="color: #000000; "> arm-linux-ranlib<br />濡傛灉瀛樺湪 -march</span><span style="color: #000000; ">=</span><span style="color: #000000; ">pentium 灝卞幓鎺夈?br /><br /><br />windows涓嬬殑瀹夎錛?br />OpenSSL鍦╓indows涓嬬殑緙栬瘧瀹夎<br />瑙e帇openssl-</span><span style="color: #000000; ">1.0</span><span style="color: #000000; ">.0d.tar.gz浠ュ悗錛?nbsp;鍦ㄥ叾鐩綍涓嬪彲浠ュ彂鐜版湁涓狪NSTALL.W32鏂囦歡錛岃繖涓枃浠跺氨鏄湪windows涓嬬殑瀹夎璇存槑銆?br /></span><span style="color: #000000; ">1</span><span style="color: #000000; ">.瀹夎perl</span><span style="color: #000000; ">,</span><span style="color: #000000; ">perl鍙互浠巋ttp://www.activestate.com/ActivePerl涓嬭澆銆?br /></span><span style="color: #000000; ">2</span><span style="color: #000000; ">.瀹夎緙栬瘧鍣紙浠繪剰涓涓兘鍙互錛?/span><span style="color: #000000; ">,</span><span style="color: #000000; ">鎴戝湪Visual C++ 2005瀹夎鎴愬姛浜嗭紝VC2008瀹夎澶辮觸浜?br /><br /></span><span style="color: #000000; ">3</span><span style="color: #000000; ">.濡傛灉閫氳繃姹囩紪鐨勬柟寮忕紪璇戯紝闇瑕佸畨瑁呮眹緙栬璦緙栬瘧鍣ㄣ侻ASM NASM閮藉彲浠ャ傚鏋滈熷害瑕佹眰涓嶉珮錛屽彲浠ヤ笉鐢ㄦ眹緙栫殑鏂瑰紡緙栬瘧錛屽嵆涓嶉渶瑕佸畨瑁呫侻ASM涓鑸敱VC++鑷甫錛學(xué)indows NT </span><span style="color: #000000; ">4.0</span><span style="color: #000000; "> DDK a鍜學(xué)indows </span><span style="color: #000000; ">98</span><span style="color: #000000; "> DDK涔熷甫鏈塎ASM銆傛妸XXXXXml.exe鍜孹XXXXml.err鏂囦歡錛屾彁鍙栧嚭鏉ワ紝鍛藉悕涓簃l.exe鍜宮l.err錛屽茍鎶婁粬浠斁鍒癙ATH璺緞涓嵆鍙?br /><br />NASM鍙互鍏嶈垂鑾峰彇錛屽緢澶氬湴鏂歸兘鍙互涓嬭澆鍒幫紝濡俬ttp://www.kernel.org/pub/software/devel/nasm/binaries/win32/<br />nasmw.exe鏂囦歡涔熼渶瑕佹斁鍒癙ATH璺緞涓?br /><br /></span><span style="color: #000000; ">4</span><span style="color: #000000; ">.鎵撳紑涓涓狣OS紿楀彛錛岃緭鍏ワ細(xì)perl Configure VC-WIN32<br /><br /></span><span style="color: #000000; ">5</span><span style="color: #000000; ">.濡傛灉浣跨敤MASM錛屾帴鐫杈撳叆錛歮s\do_masm<br />濡傛灉浣跨敤NASM錛屾帴鐫杈撳叆錛歮s\do_nasm<br />濡傛灉涓嶄嬌鐢ㄦ眹緙栬璦緙栬瘧鍣紝杈撳叆:ms\do_ms<br /><br />鎴戠敤鐨勬槸:ms\do_ms<br /></span><span style="color: #000000; ">6</span><span style="color: #000000; ">.鍦―OS紿楀彛涓帴鐫杈撳叆錛歯make -f ms\ntdll.mak<br />濡傛灉娌℃湁閿欒鐨勮瘽錛岀紪璇戝氨閫氳繃浜嗭紝鍦╫ut32dll鐩綍涓嬮潰灝卞彲浠ョ湅鍒幫紝鐢熸垚鐨刣ll鏂囦歡鍜屽彲鎵ц鏂囦歡浜嗐傛妸浠栦滑鏀懼埌錛孭ATH鐜鍙橀噺瀵瑰簲鐨勪竴涓洰褰曢噷灝卞彲浠ヤ簡銆?br /><br /><br />涓嬩竴鑺傝openssl鐨勪竴浜涘熀紜鐭ヨ瘑</span></div><img src ="http://m.shnenglu.com/aaxron/aggbug/148949.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/aaxron/" target="_blank">澶╀笅</a> 2011-06-19 10:20 <a href="http://m.shnenglu.com/aaxron/archive/2011/06/19/148949.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀵嗙爜瀛?涓?銆丆rypto++浣跨敤http://m.shnenglu.com/aaxron/archive/2010/12/25/137413.html澶╀笅澶╀笅Sat, 25 Dec 2010 03:29:00 GMThttp://m.shnenglu.com/aaxron/archive/2010/12/25/137413.htmlhttp://m.shnenglu.com/aaxron/comments/137413.htmlhttp://m.shnenglu.com/aaxron/archive/2010/12/25/137413.html#Feedback0http://m.shnenglu.com/aaxron/comments/commentRss/137413.htmlhttp://m.shnenglu.com/aaxron/services/trackbacks/137413.htmlCrypto++ 鐨勫畼緗?
http://www.cryptopp.com/

涓嬭澆,鎴戜笅鐨勭増鏈槸: Crypto++ Library 5.6.1 - a Free C++ Class Library of Cryptographic Schemes

Crypto++® Library 5.6.1

瑙e帇鍚?鐢╒S2008鏈?涓伐紼?
cryptest
cryptlib
cryptopp
dlltest

緙栬瘧 cryptlib 宸ョ▼ ,涔栦箹, 緙栬瘧鍑烘潵鐨刢ryptlib.lib 鏈?0澶歁,
涓嶇浜?緇х畫.
灝哻ryptlib.lib搴撳姞鍏ュ埌宸ョ▼涓?
緙栧啓hello world
//鐜板湪鍐欎竴涓猦ello world紼嬪簭鐪嬬湅鑳戒笉鑳界紪璇戦氳繃銆?br>#include <iostream>
using namespace std;

#include <cryptopp/aes.h>
using namespace CryptoPP;

int main() 
{
       cout << "hello crypto++" << endl;
       cout << "Aes block size is " << AES::BLOCKSIZE << endl;

 
      return 0;
}
 


闄勪笂涓涓敤鎴鋒寚鍗?
http://m.shnenglu.com/Files/aaxron/CryptoPPGuide.7z




澶╀笅 2010-12-25 11:29 鍙戣〃璇勮
]]>
瀵嗙爜瀛?浜?銆佸縐板姞瀵嗗拰涓嶅縐板姞瀵?/title><link>http://m.shnenglu.com/aaxron/archive/2010/12/25/137405.html</link><dc:creator>澶╀笅</dc:creator><author>澶╀笅</author><pubDate>Sat, 25 Dec 2010 02:07:00 GMT</pubDate><guid>http://m.shnenglu.com/aaxron/archive/2010/12/25/137405.html</guid><wfw:comment>http://m.shnenglu.com/aaxron/comments/137405.html</wfw:comment><comments>http://m.shnenglu.com/aaxron/archive/2010/12/25/137405.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/aaxron/comments/commentRss/137405.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/aaxron/services/trackbacks/137405.html</trackback:ping><description><![CDATA[<span style="font-size: 14pt;"><span style="color: red; font-weight: bold; font-family: Verdana;">瀵圭О鍔犲瘑</span><span style="font-family: Verdana;">銆銆</span><br style="font-family: Verdana;"><span style="font-family: Verdana;">    閲囩敤鍗曢挜瀵嗙爜緋葷粺鐨勫姞瀵嗘柟娉曪紝鍚屼竴涓瘑閽ュ彲浠ュ悓鏃剁敤浣滀俊鎭殑鍔犲瘑鍜岃В瀵嗭紝榪欑鍔犲瘑鏂規(guī)硶縐頒負(fù)瀵圭О鍔犲瘑錛屼篃縐頒負(fù)鍗曞瘑閽ュ姞瀵嗐?銆銆</span><br style="font-family: Verdana;"><span style="font-family: Verdana;">闇瑕佸鍔犲瘑鍜岃В瀵嗕嬌鐢ㄧ浉鍚屽瘑閽ョ殑鍔犲瘑綆楁硶銆傜敱浜庡叾閫熷害錛屽縐版у姞瀵嗛氬父鍦ㄦ秷鎭彂閫佹柟闇瑕佸姞瀵嗗ぇ閲忔暟鎹椂浣跨敤銆傚縐版у姞瀵嗕篃縐頒負(fù)瀵嗛挜鍔犲瘑銆?銆銆</span><br style="font-family: Verdana;"><span style="font-family: Verdana;">鎵璋撳縐幫紝灝辨槸閲囩敤榪欑鍔犲瘑鏂規(guī)硶鐨勫弻鏂逛嬌鐢ㄦ柟寮忕敤鍚屾牱鐨勫瘑閽ヨ繘琛屽姞瀵嗗拰瑙e瘑銆傚瘑閽ュ疄闄呬笂鏄竴縐嶇畻娉曪紝閫氫俊鍙戦佹柟浣跨敤榪欑綆楁硶鍔犲瘑鏁版嵁錛屾帴鏀舵柟鍐嶄互鍚屾牱鐨勭畻娉曡В瀵嗘暟鎹?銆銆</span><br style="font-family: Verdana;"><span style="font-family: Verdana;">鍥犳瀵圭О寮忓姞瀵嗘湰韜笉鏄畨鍏ㄧ殑銆?</span><br style="font-family: Verdana;"><span style="font-family: Verdana;">銆銆</span><br style="font-family: Verdana;"><span style="font-family: Verdana;">甯哥敤鐨勫縐板姞瀵嗙畻娉曟湁錛?/span><br style="font-family: verdana;" _extended="true"> <pre style="font-family: verdana;" _extended="true">DES錛圖ata Encryption Standard錛夛細(xì)鏁版嵁鍔犲瘑鏍囧噯錛岄熷害杈冨揩錛岄傜敤浜庡姞瀵嗗ぇ閲忔暟鎹殑鍦哄悎銆?br _extended="true"><br _extended="true">3DES錛圱riple DES錛夛細(xì)鏄熀浜嶥ES錛屽涓鍧楁暟鎹敤涓変釜涓嶅悓鐨勫瘑閽ヨ繘琛屼笁嬈″姞瀵嗭紝寮哄害鏇撮珮銆?br _extended="true"><br _extended="true">AES錛圓dvanced Encryption Standard錛夛細(xì)楂樼駭鍔犲瘑鏍囧噯錛屾槸涓嬩竴浠g殑鍔犲瘑綆楁硶鏍囧噯錛岄熷害蹇紝瀹夊叏綰у埆楂橈紱 <br><br>RC4錛屼篃鏄負(fù)   RSA   Data   Security,   Inc.   寮鍙戠殑瀵嗙爜緋葷粺鐨勫晢鏍囧悕縐般?br><br><br><font style="font-size: 16px; font-family: Verdana;">DES銆?DES銆丅lowfish銆両DEA銆丷C4銆丷C5銆丷C6鍜?/font><font style="font-size: 16px;">AES</font> <br></pre> <span style="font-family: Verdana;">DES銆両DEA銆丷C2銆丷C4銆丼KIPJACK綆楁硶絳?/span><br style="font-family: Verdana;"><span style="font-family: Verdana;">鐢ㄥ崟閽ュ瘑鐮佺郴緇熺殑鍔犲瘑鏂規(guī)硶錛屽悓涓涓瘑閽ュ彲浠ュ悓鏃剁敤浣滀俊鎭殑鍔犲瘑鍜岃В瀵嗭紝榪欑鍔犲瘑鏂規(guī)硶縐頒負(fù)瀵圭О鍔犲瘑錛屼篃縐頒負(fù)鍗曞瘑閽ュ姞瀵嗐?/span><br style="font-family: Verdana;"><br style="font-family: Verdana;"> <p style="text-indent: -18pt; margin-left: 18pt; font-family: Verdana;"><strong> DES</strong> </p> <p style="font-family: Verdana;">鍗曞瘑閽ョ畻娉?鏄俊鎭殑鍙戦佹柟閲囩敤瀵嗛挜A榪涜鏁版嵁鍔犲瘑,淇℃伅鐨勬帴鏀舵柟閲囩敤鍚屼竴涓瘑閽榪涜鏁版嵁瑙e瘑.</p> <p style="font-family: Verdana;">鍗曞瘑閽ョ畻娉曟槸涓涓縐扮畻娉?</p> <p style="font-family: Verdana;">緙虹偣:鐢變簬閲囩敤鍚屼竴涓瘑閽ヨ繘琛屽姞瀵嗚В瀵?鍦ㄥ鐢ㄦ埛鐨勬儏鍐典笅,瀵嗛挜淇濈鐨勫畨鍏ㄦф槸涓涓棶棰?</p> <br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="color: red; font-weight: bold; font-family: Verdana;">瀵圭О鍔犲瘑綆楁硶</span><br style="font-family: Verdana;"><span style="font-family: Verdana;">    瀵圭О鍔犲瘑綆楁硶鏄簲鐢ㄨ緝鏃╃殑鍔犲瘑綆楁硶錛屾妧鏈垚鐔熴傚湪瀵圭О鍔犲瘑綆楁硶涓紝鏁版嵁鍙戜俊鏂瑰皢鏄庢枃錛堝師濮嬫暟鎹級(jí)鍜屽姞瀵嗗瘑閽ヤ竴璧風(fēng)粡榪囩壒孌婂姞瀵嗙畻娉曞鐞嗗悗錛屼嬌鍏跺彉鎴愬鏉傜殑鍔犲瘑瀵嗘枃鍙戦佸嚭鍘匯傛敹淇℃柟鏀跺埌瀵嗘枃鍚庯紝鑻ユ兂瑙h鍘熸枃錛屽垯闇瑕佷嬌鐢ㄥ姞瀵嗙敤榪囩殑瀵嗛挜鍙?qiáng)鐩稿悓绠楁硶鐨勯嗙畻娉曞瀵嗘枃榪涜瑙e瘑錛屾墠鑳戒嬌鍏舵仮澶嶆垚鍙鏄庢枃銆傚湪瀵圭О鍔犲瘑綆楁硶涓紝浣跨敤鐨勫瘑閽ュ彧鏈変竴涓紝鍙戞敹淇″弻鏂歸兘浣跨敤榪欎釜瀵嗛挜瀵規(guī)暟鎹繘琛屽姞瀵嗗拰瑙e瘑錛岃繖灝辮姹傝В瀵嗘柟浜嬪厛蹇呴』鐭ラ亾鍔犲瘑瀵嗛挜銆傚縐板姞瀵嗙畻娉曠殑鐗圭偣鏄畻娉曞叕寮銆佽綆楅噺灝忋佸姞瀵嗛熷害蹇佸姞瀵嗘晥鐜囬珮銆備笉瓚充箣澶勬槸錛屼氦鏄撳弻鏂歸兘浣跨敤鍚屾牱閽ュ寵錛屽畨鍏ㄦу緱涓嶅埌淇濊瘉銆傛澶栵紝姣忓鐢ㄦ埛姣忔浣跨敤瀵圭О鍔犲瘑綆楁硶鏃訛紝閮介渶瑕佷嬌鐢ㄥ叾浠栦漢涓嶇煡閬撶殑鎯熶竴閽ュ寵錛岃繖浼?xì)鋴慑緱鍙戞敹淇″弻鏂规墍鎷ユ湁鐨勯挜鍖欐暟閲忔垚鍑犱綍綰ф暟澧為暱錛屽瘑閽ョ鐞嗘垚涓虹敤鎴風(fēng)殑璐熸媴銆傚縐板姞瀵嗙畻娉曞湪鍒嗗竷寮忕綉緇滅郴緇熶笂浣跨敤杈冧負(fù)鍥伴毦錛屼富瑕佹槸鍥犱負(fù)瀵嗛挜綆$悊鍥伴毦錛屼嬌鐢ㄦ垚鏈緝楂樸傚湪璁$畻鏈轟笓緗戠郴緇熶腑騫挎硾浣跨敤鐨勫縐板姞瀵嗙畻娉曟湁DES銆両DEA鍜孉ES銆?/span><br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="font-family: Verdana;">  浼犵粺鐨凞ES鐢變簬鍙湁56浣嶇殑瀵嗛挜錛屽洜姝ゅ凡緇忎笉閫傚簲褰撲粖鍒嗗竷寮忓紑鏀劇綉緇滃鏁版嵁鍔犲瘑瀹夊叏鎬х殑瑕佹眰銆?997騫碦SA鏁版嵁瀹夊叏鍏徃鍙戣搗浜嗕竴欏?#8220;DES鎸戞垬璧?#8221;鐨勬椿鍔紝蹇楁効鑰呭洓嬈″垎鍒敤鍥涗釜鏈堛?1澶┿?6涓皬鏃跺拰22涓皬鏃剁牬瑙d簡鍏剁敤56浣嶅瘑閽ES綆楁硶鍔犲瘑鐨勫瘑鏂囥傚嵆DES鍔犲瘑綆楁硶鍦ㄨ綆楁満閫熷害鎻愬崌鍚庣殑浠婂ぉ琚涓烘槸涓嶅畨鍏ㄧ殑銆?/span><br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="font-family: Verdana;">  AES鏄編鍥借仈閭︽斂搴滈噰鐢ㄧ殑鍟嗕笟鍙?qiáng)鏀垮簻鏁版嵁鍔犲瘑鏍囧噯锛岄璁畣鍦ㄦ湭鏉ュ嚑鍗侐q撮噷浠f浛DES鍦ㄥ悇涓鍩熶腑寰楀埌騫挎硾搴旂敤銆侫ES鎻愪緵128浣嶅瘑閽ワ紝鍥犳錛?28浣岮ES鐨勫姞瀵嗗己搴︽槸56浣岲ES鍔犲瘑寮哄害鐨?021鍊嶈繕澶氥傚亣璁懼彲浠ュ埗閫犱竴閮ㄥ彲浠ュ湪1縐掑唴鐮磋ВDES瀵嗙爜鐨勬満鍣紝閭d箞浣跨敤榪欏彴鏈哄櫒鐮磋В涓涓?28浣岮ES瀵嗙爜闇瑕佸ぇ綰?49浜夸竾騫寸殑鏃墮棿銆傦紙鏇存繁涓姝ユ瘮杈冭岃█錛屽畤瀹欎竴鑸璁や負(fù)瀛樺湪浜嗚繕涓嶅埌200浜垮勾錛夊洜姝ゅ彲浠ラ璁★紝緹庡浗鍥藉鏍囧噯灞鍊″鐨凙ES鍗沖皢浣滀負(fù)鏂版爣鍑嗗彇浠ES銆?/span><br style="font-family: Verdana;"><br style="font-family: Verdana;"><br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="color: red; font-weight: bold; font-family: Verdana;">闈炲縐板姞瀵?/span><br style="font-family: Verdana;"><span style="font-family: Verdana;">銆銆1976騫達(dá)紝緹庡浗瀛﹁匘ime鍜孒enman涓鴻В鍐充俊鎭叕寮浼犻佸拰瀵嗛挜綆$悊闂錛屾彁鍑轟竴縐嶆柊鐨勫瘑閽ヤ氦鎹㈠崗璁紝鍏佽鍦ㄤ笉瀹夊叏鐨勫獟浣撲笂鐨勯氳鍙屾柟浜ゆ崲淇℃伅錛屽畨鍏ㄥ湴杈炬垚涓鑷寸殑瀵嗛挜錛岃繖灝辨槸“鍏紑瀵嗛挜緋葷粺”銆傜浉瀵逛簬“瀵圭О鍔犲瘑綆楁硶”榪欑鏂規(guī)硶涔熷彨鍋?#8220;闈炲縐板姞瀵嗙畻娉?#8221;銆?銆銆涓庡縐板姞瀵嗙畻娉曚笉鍚岋紝闈炲縐板姞瀵嗙畻娉曢渶瑕佷袱涓瘑閽ワ細(xì)鍏紑瀵嗛挜錛坧ublickey錛夊拰縐佹湁瀵嗛挜錛坧rivatekey錛夈傚叕寮瀵嗛挜涓庣鏈夊瘑閽ユ槸涓瀵癸紝濡傛灉鐢ㄥ叕寮瀵嗛挜瀵規(guī)暟鎹繘琛屽姞瀵嗭紝鍙湁鐢ㄥ搴旂殑縐佹湁瀵嗛挜鎵嶈兘瑙e瘑錛涘鏋滅敤縐佹湁瀵嗛挜瀵規(guī)暟鎹繘琛屽姞瀵嗭紝閭d箞鍙湁鐢ㄥ搴旂殑鍏紑瀵嗛挜鎵嶈兘瑙e瘑銆傚洜涓哄姞瀵嗗拰瑙e瘑浣跨敤鐨勬槸涓や釜涓嶅悓鐨勫瘑閽ワ紝鎵浠ヨ繖縐嶇畻娉曞彨浣滈潪瀵圭О鍔犲瘑綆楁硶銆?/span><br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="font-family: Verdana;">鐗規(guī)?/span><br style="font-family: Verdana;"><span style="font-family: Verdana;">銆銆闈炲縐板姞瀵嗙畻娉曞疄鐜版満瀵嗕俊鎭氦鎹㈢殑鍩烘湰榪囩▼鏄細(xì)鐢叉柟鐢熸垚涓瀵瑰瘑閽ュ茍灝嗗叾涓殑涓鎶婁綔涓哄叕鐢ㄥ瘑閽ュ悜鍏跺畠鏂瑰叕寮錛涘緱鍒拌鍏敤瀵嗛挜鐨勪箼鏂逛嬌鐢ㄨ瀵嗛挜瀵規(guī)満瀵嗕俊鎭繘琛屽姞瀵嗗悗鍐嶅彂閫佺粰鐢叉柟錛涚敳鏂瑰啀鐢ㄨ嚜宸變繚瀛樼殑鍙︿竴鎶婁笓鐢ㄥ瘑閽ュ鍔犲瘑鍚庣殑淇℃伅榪涜瑙e瘑銆傜敳鏂瑰彧鑳界敤鍏朵笓鐢ㄥ瘑閽ヨВ瀵嗙敱鍏跺叕鐢ㄥ瘑閽ュ姞瀵嗗悗鐨勪換浣曚俊鎭?銆銆闈炲縐板姞瀵嗙畻娉曠殑淇濆瘑鎬ф瘮杈冨ソ錛屽畠娑堥櫎浜嗘渶緇堢敤鎴蜂氦鎹㈠瘑閽ョ殑闇瑕侊紝浣嗗姞瀵嗗拰瑙e瘑鑺辮垂鏃墮棿闀褲侀熷害鎱紝瀹冧笉閫傚悎浜庡鏂囦歡鍔犲瘑鑰屽彧閫傜敤浜庡灝戦噺鏁版嵁榪涜鍔犲瘑銆?銆銆緇忓吀鐨勯潪瀵圭О鍔犲瘑綆楁硶濡俁SA綆楁硶絳夊畨鍏ㄦч兘鐩稿綋楂? 銆銆闈炲縐板姞瀵嗙殑鍏稿瀷搴旂敤鏄暟瀛楃鍚嶃?銆銆閲囩敤鍙岄挜瀵嗙爜緋葷粺鐨勫姞瀵嗘柟娉曪紝鍦ㄤ竴涓繃紼嬩腑浣跨敤涓や釜瀵嗛挜錛屼竴涓敤浜庡姞瀵嗭紝鍙︿竴涓敤浜庤В瀵嗭紝榪欑鍔犲瘑鏂規(guī)硶縐頒負(fù)闈炲縐板姞瀵嗭紝涔熺О涓哄叕閽ュ姞瀵嗭紝鍥犱負(fù)鍏朵腑涓涓瘑閽ユ槸鍏紑鐨勶紙鍙︿竴涓垯闇瑕佷繚瀵嗭級(jí)銆?/span><br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="color: red; font-weight: bold; font-family: Verdana;">涓嶅縐板姞瀵嗙畻娉?/span><br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="font-family: Verdana;">  涓嶅縐板姞瀵嗙畻娉曚嬌鐢ㄤ袱鎶婂畬鍏ㄤ笉鍚屼絾鍙堟槸瀹屽叏鍖歸厤鐨勪竴瀵歸挜鍖欌斿叕閽ュ拰縐侀挜銆傚湪浣跨敤涓嶅縐板姞瀵嗙畻娉曞姞瀵嗘枃浠舵椂錛屽彧鏈変嬌鐢ㄥ尮閰嶇殑涓瀵瑰叕閽ュ拰縐侀挜錛屾墠鑳藉畬鎴愬鏄庢枃鐨勫姞瀵嗗拰瑙e瘑榪囩▼銆傚姞瀵嗘槑鏂囨椂閲囩敤鍏挜鍔犲瘑錛岃В瀵嗗瘑鏂囨椂浣跨敤縐侀挜鎵嶈兘瀹屾垚錛岃屼笖鍙戜俊鏂癸紙鍔犲瘑鑰咃級(jí)鐭ラ亾鏀朵俊鏂圭殑鍏挜錛屽彧鏈夋敹淇℃柟錛堣В瀵嗚咃級(jí)鎵嶆槸鍞竴鐭ラ亾鑷繁縐侀挜鐨勪漢銆備笉瀵圭О鍔犲瘑綆楁硶鐨勫熀鏈師鐞嗘槸錛屽鏋滃彂淇℃柟鎯沖彂閫佸彧鏈夋敹淇℃柟鎵嶈兘瑙h鐨勫姞瀵嗕俊鎭紝鍙戜俊鏂瑰繀欏婚鍏堢煡閬撴敹淇℃柟鐨勫叕閽ワ紝鐒跺悗鍒╃敤鏀朵俊鏂圭殑鍏挜鏉ュ姞瀵嗗師鏂囷紱鏀朵俊鏂規(guī)敹鍒板姞瀵嗗瘑鏂囧悗錛屼嬌鐢ㄨ嚜宸辯殑縐侀挜鎵嶈兘瑙e瘑瀵嗘枃銆傛樉鐒?dòng)灱岄噰鐢ㄤ笉瀵箍U板姞瀵嗙畻娉曪紝鏀跺彂淇″弻鏂瑰湪閫氫俊涔嬪墠錛屾敹淇℃柟蹇呴』灝嗚嚜宸辨棭宸查殢鏈虹敓鎴愮殑鍏挜閫佺粰鍙戜俊鏂癸紝鑰岃嚜宸變繚鐣欑閽ャ傜敱浜庝笉瀵圭О綆楁硶鎷ユ湁涓や釜瀵嗛挜錛屽洜鑰岀壒鍒傜敤浜庡垎甯冨紡緋葷粺涓殑鏁版嵁鍔犲瘑銆傚箍娉涘簲鐢ㄧ殑涓嶅縐板姞瀵嗙畻娉曟湁RSA綆楁硶鍜岀編鍥藉浗瀹舵爣鍑嗗眬鎻愬嚭鐨凞SA銆備互涓嶅縐板姞瀵嗙畻娉曚負(fù)鍩虹鐨勫姞瀵嗘妧鏈簲鐢ㄩ潪甯稿箍娉涖?/span><br style="font-family: Verdana;"> <pre style="font-family: verdana;" _extended="true"><br>RSA錛圧ivest   Shamir   Adlemen錛屼竴縐嶅洜鐗圭綉鍔犲瘑鍜岃璇佷綋緋伙級(jí)錛氱敱 RSA 鍏徃鍙戞槑錛屾槸涓涓敮鎸佸彉闀垮瘑閽ョ殑鍏叡瀵嗛挜綆楁硶錛岄渶瑕佸姞瀵嗙殑鏂囦歡鍧楃殑闀垮害涔熸槸鍙彉鐨勶紱<br><span style="font-family: monospace;"></span> <p><span style="font-family: monospace;"></span>DSA錛圖igital Signature Algorithm錛夛細(xì)鏁板瓧絳懼悕綆楁硶錛屾槸涓縐嶆爣鍑嗙殑 DSS錛堟暟瀛楃鍚嶆爣鍑嗭級(jí)錛?span style="font-family: monospace;"><br></span></p> <p><span style="font-family: monospace;"></span>ECC錛圗lliptic Curves Cryptography錛夛細(xì)妞渾鏇茬嚎瀵嗙爜緙栫爜瀛︺?/p> </pre> <br style="font-family: Verdana;"> <p style="text-indent: -18pt; margin-left: 18pt; font-family: Verdana;"><strong> DSA</strong> </p> <p style="font-family: Verdana;">鎵璋撴暟瀛楃鍚嶆槸鎸囧彂閫佹柟浠庡彂閫佹姤鏂囦腑鎶藉彇鐗瑰緛鏁版嵁(縐頒負(fù)鏁板瓧鎸囩汗鎴栨憳瑕?,鐒跺悗鐢ㄥ彂閫佹柟鐨勭閽ュ鏁板瓧鎸囩汗浣跨敤鍔犲瘑綆楁硶榪涜綆楁硶鎿嶄綔,鎺ュ彈鏂逛嬌鐢ㄥ彂閫佹柟宸茬粡鍏紑鐨勫叕閽ヨВ瀵嗗茍楠岃瘉鎶ユ枃.</p> <p style="font-family: Verdana;">鏁板瓧絳懼悕鐢ㄦ埛楠岃瘉鍙戦佹柟韜喚鎴栬呭彂閫佹柟淇℃伅鐨勫畬鏁存?/p> <br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="font-family: Verdana;">涓枃鍚嶇О錛氬瘑閽ュ姞瀵?</span><br style="font-family: Verdana;"><span style="font-family: Verdana;">鑻辨枃鍚嶇О錛歴ecret key encryption </span><br style="font-family: Verdana;"><span style="font-family: Verdana;">瀹氫箟錛氬彂閫佸拰鎺ユ敹鏁版嵁鐨勫弻鏂癸紝浣跨敤鐩稿悓鐨勬垨瀵圭О鐨勫瘑閽ュ鏄庢枃榪涜鍔犲瘑瑙e瘑榪愮畻鐨勫姞瀵嗘柟娉曘?/span><br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="font-family: Verdana;">鍏挜鍔犲瘑</span><br style="font-family: Verdana;"><span style="font-family: Verdana;">涓枃鍚嶇О錛氬叕閽ュ姞瀵?</span><br style="font-family: Verdana;"><span style="font-family: Verdana;">鑻辨枃鍚嶇О錛歱ublic key encryption </span><br style="font-family: Verdana;"><span style="font-family: Verdana;">瀹氫箟錛氱敱瀵瑰簲鐨勪竴瀵瑰敮涓鎬у瘑閽?鍗沖叕寮瀵嗛挜鍜岀鏈夊瘑閽?緇勬垚鐨勫姞瀵嗘柟娉曘傚畠瑙e喅浜嗗瘑閽ョ殑鍙戝竷鍜岀鐞嗛棶棰橈紝鏄洰鍓嶅晢涓氬瘑鐮佺殑鏍稿績銆?/span><br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="font-family: Verdana;">涓枃鍚嶇О錛氭暟瀛楃鍚?</span><br style="font-family: Verdana;"><span style="font-family: Verdana;">鑻辨枃鍚嶇О錛歞igital signature </span><br style="font-family: Verdana;"><span style="font-family: Verdana;">瀹氫箟錛氫互鐢?shù)瀛愬舰寮忓瓨鍦ㄤ簬鏁版嵁淇℃伅涔嬩腑鐨勫Q屾垨浣滀負(fù)鍏墮檮浠剁殑鎴栭昏緫涓婁笌涔嬫湁鑱旂郴鐨勬暟鎹紝鍙敤浜庤鯨鍒暟鎹緗蹭漢鐨勮韓浠斤紝騫惰〃鏄庣緗蹭漢瀵規(guī)暟鎹俊鎭腑鍖呭惈鐨勪俊鎭殑璁ゅ彲銆?/span><br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="font-family: Verdana;">鏁板瓧絳懼悕錛堝張縐板叕閽ユ暟瀛楃鍚嶃佺數(shù)瀛愮绔狅級(jí)鏄竴縐嶇被浼煎啓鍦ㄧ焊涓婄殑鏅氱殑鐗╃悊絳懼悕錛屼絾鏄嬌鐢ㄤ簡鍏挜鍔犲瘑棰嗗煙鐨勬妧鏈疄鐜幫紝鐢ㄤ簬閴村埆鏁板瓧淇℃伅鐨勬柟娉曘備竴濂楁暟瀛楃鍚嶉氬父瀹氫箟涓ょ浜掕ˉ鐨勮繍綆楋紝涓涓敤浜庣鍚嶏紝鍙︿竴涓敤浜庨獙璇併?/span><br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="font-family: Verdana;">Hash綆楁硶 </span><br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="font-family: Verdana;">Hash綆楁硶鐗瑰埆鐨勫湴鏂瑰湪浜庡畠鏄竴縐嶅崟鍚戠畻娉曪紝鐢ㄦ埛鍙互閫氳繃Hash綆楁硶瀵圭洰鏍囦俊鎭敓鎴愪竴孌電壒瀹氶暱搴︾殑鍞竴鐨凥ash鍊鹼紝鍗翠笉鑳介氳繃榪欎釜Hash鍊奸噸鏂拌幏寰楃洰鏍囦俊鎭傚洜姝ash綆楁硶甯哥敤鍦ㄤ笉鍙繕鍘熺殑瀵嗙爜瀛樺偍銆佷俊鎭畬鏁存ф牎楠岀瓑銆? </span><br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="font-family: Verdana;">甯歌鐨凥ash綆楁硶鏈塎D2銆丮D4銆丮D5銆丠AVAL銆丼HA </span><br style="font-family: Verdana;"><br style="font-family: Verdana;"> <p style="text-indent: -18pt; margin-left: 18pt; font-family: Verdana;"><strong> MD5/SHA</strong> </p> <p style="font-family: Verdana;">MessageDigest鏄竴涓暟鎹殑鏁板瓧鎸囩汗.鍗沖涓涓換鎰忛暱搴︾殑鏁版嵁榪涜璁$畻,浜х敓涓涓敮涓鎸囩汗鍙?<br>MessageDigest鐨勭壒鎬?</p> <p style="text-indent: -18pt; margin-left: 29.25pt; font-family: Verdana;">A) 涓や釜涓嶅悓鐨勬暟鎹?闅句互鐢熸垚鐩稿悓鐨勬寚綰瑰彿</p> <p style="text-indent: -18pt; margin-left: 29.25pt; font-family: Verdana;">B) 瀵逛簬鎸囧畾鐨勬寚綰瑰彿,闅句互閫嗗悜璁$畻鍑哄師濮嬫暟鎹?/p> <br style="font-family: Verdana;"> <br style="font-family: Verdana;"><span style="font-family: Verdana;">鍏朵粬浠嬬粛:</span><br style="font-family: Verdana;"><span style="font-family: Verdana;">PGP錛圥retty Good Privacy錛夋妧鏈? PGP鎶鏈槸涓涓熀浜庝笉瀵圭О鍔犲瘑綆楁硶RSA鍏挜浣撶郴鐨勯偖浠跺姞瀵嗘妧鏈紝涔熸槸涓縐嶆搷浣滅畝鍗曘佷嬌鐢ㄦ柟渚褲佹櫘鍙?qiáng)绋嬪害杈冮珮鐨勫姞瀵嗚蒋錃g銆侾GP鎶鏈笉浣嗗彲浠ュ鐢?shù)瀛愰偖錃g鍔犲瘑錛岄槻姝㈤潪鎺堟潈鑰呴槄璇諱俊浠訛紱榪樿兘瀵圭數(shù)瀛愰偖浠墮檮鍔犳暟瀛楃鍚嶏紝浣挎敹淇′漢鑳芥槑紜簡瑙e彂淇′漢鐨勭湡瀹炶韓浠斤紱涔熷彲浠ュ湪涓嶉渶瑕侀氳繃浠諱綍淇濆瘑娓犻亾浼犻掑瘑閽ョ殑鎯呭喌涓嬶紝浣夸漢浠畨鍏ㄥ湴榪涜淇濆瘑閫氫俊銆侾GP鎶鏈垱閫犳у湴鎶奟SA涓嶅縐板姞瀵嗙畻娉曠殑鏂逛究鎬у拰浼犵粺鍔犲瘑浣撶郴緇撳悎璧鋒潵錛屽湪鏁板瓧絳懼悕鍜屽瘑閽ヨ璇佺鐞嗘満鍒舵柟闈㈤噰鐢ㄤ簡鏃犵紳緇撳悎鐨勫閥濡欒璁★紝浣垮叾鍑犱箮鎴愪負(fù)鏈涓烘祦琛岀殑鍏挜鍔犲瘑杞歡鍖呫? </span><br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="font-family: Verdana;">鏁板瓧絳懼悕錛圖igital Signature錛夋妧鏈? 鏁板瓧絳懼悕鎶鏈槸涓嶅縐板姞瀵嗙畻娉曠殑鍏稿瀷搴旂敤銆傛暟瀛楃鍚嶇殑搴旂敤榪囩▼鏄紝鏁版嵁婧愬彂閫佹柟浣跨敤鑷繁鐨勭閽ュ鏁版嵁鏍¢獙鍜屾垨鍏朵粬涓庢暟鎹唴瀹規(guī)湁鍏崇殑鍙橀噺榪涜鍔犲瘑澶勭悊錛屽畬鎴愬鏁版嵁鐨勫悎娉?#8220;絳懼悕”錛屾暟鎹帴鏀舵柟鍒欏埄鐢ㄥ鏂圭殑鍏挜鏉ヨВ璇繪敹鍒扮殑“鏁板瓧絳懼悕”錛屽茍灝嗚В璇葷粨鏋滅敤浜庡鏁版嵁瀹屾暣鎬х殑媯(gè)楠岋紝浠ョ‘璁ょ鍚嶇殑鍚堟硶鎬с傛暟瀛楃鍚嶆妧鏈槸鍦ㄧ綉緇滅郴緇熻櫄鎷熺幆澧冧腑紜韜喚鐨勯噸瑕佹妧鏈紝瀹屽叏鍙互浠f浛鐜板疄榪囩▼涓殑“浜茬瑪絳懼瓧”錛屽湪鎶鏈拰娉曞緥涓婃湁淇濊瘉銆傚湪鍏挜涓庣閽ョ鐞嗘柟闈紝鏁板瓧絳懼悕搴旂敤涓庡姞瀵嗛偖浠禤GP鎶鏈濂界浉鍙嶃傚湪鏁板瓧絳懼悕搴旂敤涓紝鍙戦佽呯殑鍏挜鍙互寰堟柟渚垮湴寰楀埌錛屼絾浠栫殑縐侀挜鍒欓渶瑕佷弗鏍間繚瀵嗐? </span><br style="font-family: Verdana;"><br style="font-family: Verdana;"><span style="font-family: Verdana;">PKI錛圥ublic Key Infrastructure錛夋妧鏈? PKI鎶鏈槸涓縐嶄互涓嶅縐板姞瀵嗘妧鏈負(fù)鏍稿績銆佸彲浠ヤ負(fù)緗戠粶鎻愪緵瀹夊叏鏈嶅姟鐨勫叕閽ュ熀紜璁炬柦銆侾KI鎶鏈渶鍒濅富瑕佸簲鐢ㄥ湪Internet鐜涓紝涓哄鏉傜殑浜掕仈緗戠郴緇熸彁渚涚粺涓鐨勮韓浠借璇併佹暟鎹姞瀵嗗拰瀹屾暣鎬т繚闅滄満鍒躲傜敱浜嶱KI鎶鏈湪緗戠粶瀹夊叏棰嗗煙鎵琛ㄧ幇鍑虹殑宸ㄥぇ浼樺娍錛屽洜鑰屽彈鍒伴摱琛屻佽瘉鍒搞佹斂搴滅瓑鏍稿績搴旂敤緋葷粺鐨勯潚鐫愩侾KI鎶鏈棦鏄俊鎭畨鍏ㄦ妧鏈殑鏍稿績錛屼篃鏄數(shù)瀛愬晢鍔$殑鍏抽敭鍜屽熀紜鎶鏈傜敱浜庨氳繃緗戠粶榪涜鐨勭數(shù)瀛愬晢鍔°佺數(shù)瀛愭斂鍔$瓑媧誨姩緙哄皯鐗╃悊鎺ヨЕ錛屽洜鑰屼嬌寰楀埄鐢ㄧ數(shù)瀛愭柟寮忛獙璇佷俊浠誨叧緋誨彉寰楄嚦鍏抽噸瑕侊紝PKI鎶鏈伆濂借兘澶熸湁鏁堣В鍐崇數(shù)瀛愬晢鍔″簲鐢ㄤ腑鐨勬満瀵嗘с佺湡瀹炴с佸畬鏁存с佷笉鍙惁璁ゆу拰瀛樺彇鎺у埗絳夊畨鍏ㄩ棶棰樸備竴涓疄鐢ㄧ殑PKI浣撶郴榪樺繀欏誨厖鍒嗚冭檻浜掓搷浣滄у拰鍙墿灞曟с侾KI浣撶郴鎵鍖呭惈鐨勮璇佷腑蹇冿紙CA錛夈佹敞鍐屼腑蹇冿紙RA錛夈佺瓥鐣ョ鐞嗐佸瘑閽ヤ笌璇佷功綆$悊銆佸瘑閽ュ浠戒笌鎭㈠銆佹挙閿緋葷粺絳夊姛鑳芥ā鍧楀簲璇ユ湁鏈哄湴緇撳悎鍦ㄤ竴璧楓? </span><br style="font-family: Verdana;"> <br style="font-family: Verdana;"><br style="font-family: Verdana;"> <br style="font-family: Verdana;"></span> <img src ="http://m.shnenglu.com/aaxron/aggbug/137405.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/aaxron/" target="_blank">澶╀笅</a> 2010-12-25 10:07 <a href="http://m.shnenglu.com/aaxron/archive/2010/12/25/137405.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀵嗙爜瀛?涓)銆佸熀紜http://m.shnenglu.com/aaxron/archive/2010/12/25/137403.html澶╀笅澶╀笅Sat, 25 Dec 2010 02:03:00 GMThttp://m.shnenglu.com/aaxron/archive/2010/12/25/137403.htmlhttp://m.shnenglu.com/aaxron/comments/137403.htmlhttp://m.shnenglu.com/aaxron/archive/2010/12/25/137403.html#Feedback0http://m.shnenglu.com/aaxron/comments/commentRss/137403.htmlhttp://m.shnenglu.com/aaxron/services/trackbacks/137403.html瀵嗙爜瀛﹀熀紜
姒傝堪
鏄庢枃錛圥laintext錛?/span>
瀵嗘枃(Ciphertext)
鍔犲瘑錛圗ncrypt 錛?/span>
瑙e瘑錛圖ecrypt錛?/span>
瀵嗙爜綆楁硶(Cryptography Algorithm)
瀵嗛挜錛圫ecret Key 錛?/span>
1銆佺郴緇熺粍鎴?/span>
2銆佷簲鍏冪粍{ M錛孋錛孠錛孍錛孌 }

銆銆瀵嗙爜鎶鏈殑涓涓熀鏈姛鑳芥槸瀹炵幇淇濆瘑閫氫俊錛岀粡鍏哥殑淇濆瘑閫氫俊妯″瀷 銆銆    
娉ㄦ剰錛氫粎鐢ㄤ竴涓繚瀵嗛氫俊妯″瀷鏉ュ畬鏁存弿榪板瘑鐮佺郴緇燂紝鍙兘鏄茍涓嶅叏闈㈠拰鍑嗙‘鐨勶紝鍥犱負(fù)鐜板湪鐨勫瘑鐮佺郴緇熶笉鍗曞崟鍙彁渚涗俊鎭殑鏈哄瘑鎬ф湇鍔°備繚瀵嗛氫俊鏄瘑鐮佹妧鏈殑涓涓熀鏈姛鑳姐?/span>

鏄庢枃錛圥laintext錛?/span>
銆銆寰呬吉瑁呮垨鍔犲瘑鐨勬秷鎭紙Message錛夈傚湪閫氫俊緋葷粺涓畠鍙兘鏄瘮鐗規(guī)祦錛屽鏂囨湰銆佷綅鍥俱佹暟瀛楀寲鐨勮闊蟲祦鎴栨暟瀛楀寲鐨勮棰戝浘鍍忕瓑 銆備竴鑸彲浠ョ畝鍗曠殑璁や負(fù)鏄庢枃鏄湁鎰忎箟鐨勫瓧絎︽垨姣旂壒闆嗭紝鎴栭氳繃鏌愮鍏紑鐨勭紪鐮佹爣鍑嗗氨鑳借幏寰楃殑娑堟伅銆傛槑鏂囧父鐢╩鎴杙琛ㄧず銆?/span>
瀵嗘枃(Ciphertext)
銆銆瀵規(guī)槑鏂囨柦鍔犳煇縐嶄吉瑁呮垨鍙樻崲鍚庣殑杈撳嚭錛屼篃鍙涓烘槸涓嶅彲鐩存帴鐞嗚В鐨勫瓧絎︽垨姣旂壒闆嗭紝瀵嗘枃甯哥敤c琛ㄧず銆?/span>
鍔犲瘑錛圗ncrypt 錛?/span>
銆銆鎶婂師濮嬬殑淇℃伅錛堟槑鏂囷級(jí)杞崲涓哄瘑鏂囩殑淇℃伅鍙樻崲榪囩▼銆?/span>
瑙e瘑錛圖ecrypt錛?/span>
銆銆鎶婂繁鍔犲瘑鐨勪俊鎭紙瀵嗘枃錛夋仮澶嶆垚鍘熷淇℃伅鏄庢枃鐨勮繃紼嬶紝涔熺О涓鴻劚瀵嗐?/span>
瀵嗙爜綆楁硶(Cryptography Algorithm)
銆銆涔熺畝縐板瘑鐮侊紙Cipher錛夛紝閫氬父鏄寚鍔犮佽В瀵嗚繃紼嬫墍浣跨敤鐨勪俊鎭彉鎹㈣鍒欙紝鏄敤浜庝俊鎭姞瀵嗗拰瑙e瘑鐨勬暟瀛﹀嚱鏁般?銆銆瀵規(guī)槑鏂囪繘琛屽姞瀵嗘椂鎵閲囩敤鐨勮鍒欑О浣滃姞瀵嗙畻娉曪紝鑰屽瀵嗘枃榪涜瑙e瘑鏃舵墍閲囩敤鐨勮鍒欑О浣滆В瀵嗙畻娉曘傚姞瀵嗙畻娉曞拰瑙e瘑綆楁硶鐨勬搷浣滈氬父閮芥槸鍦ㄤ竴緇勫瘑閽ョ殑鎺у埗涓嬭繘琛岀殑銆?/span>
瀵嗛挜錛圫ecret Key 錛?/span>
銆銆瀵嗙爜綆楁硶涓殑涓涓彲鍙樺弬鏁幫紝閫氬父鏄竴緇勬弧瓚充竴瀹氭潯浠剁殑闅忔満搴忓垪銆?銆銆鐢ㄤ簬鍔犲瘑綆楁硶鐨勫彨鍋氬姞瀵嗗瘑閽ワ紝鐢ㄤ簬瑙e瘑綆楁硶鐨勫彨鍋氳В瀵嗗瘑閽ワ紝鍔犲瘑瀵嗛挜鍜岃В瀵嗗瘑閽ュ彲鑳界浉鍚岋紝涔熷彲鑳戒笉鐩稿悓銆?銆銆
瀵嗛挜甯哥敤k琛ㄧず銆?/span>
瀵嗙爜緋葷粺
1銆佺郴緇熺粍鎴?/span>
鍙互鏈夊涓嬪嚑涓儴鍒嗭細(xì) 銆銆
–娑堟伅絀洪棿M錛堝張縐版槑鏂囩┖闂達(dá)級(jí)錛氭墍鏈夊彲鑳芥槑鏂噈鐨勯泦鍚堬紱 銆銆
–瀵嗘枃絀洪棿C錛氭墍鏈夊彲鑳藉瘑鏂嘽鐨勯泦鍚堬紱 銆銆
–瀵嗛挜絀洪棿K錛氭墍鏈夊彲鑳藉瘑閽鐨勯泦鍚堬紝鍏朵腑姣忎竴瀵嗛挜k鐢卞姞瀵嗗瘑閽e鍜岃В瀵嗗瘑閽d緇勬垚錛屽嵆k錛濓紙ke錛宬d錛夛紱 銆銆
–鍔犲瘑綆楁硶E錛氫竴綈囩敱鍔犲瘑瀵嗛挜鎺у埗鐨勩佷粠M鍒癈鐨勫姞瀵嗗彉鎹紱 銆銆
–瑙e瘑綆楁硶D: 涓綈囩敱瑙e瘑瀵嗛挜鎺у埗鐨勩佷粠C鍒癕鐨勮В瀵嗗彉鎹€?/span>
2銆佷簲鍏冪粍{ M錛孋錛孠錛孍錛孌 }
瀵圭О綆楁硶鐨勫姞瀵嗗拰瑙e瘑琛ㄧず涓猴細(xì)
Ek(M)=C
Dk(C)=M

榪欑綆楁硶鍏鋒湁濡備笅鐨勭壒鎬э細(xì)
Dk(Ek(M))=M 


澶╀笅 2010-12-25 10:03 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美成人午夜视频| 久久男女视频| 亚洲乱码国产乱码精品精天堂 | 欧美国产激情| 久久国产夜色精品鲁鲁99| 亚洲美女在线观看| 亚洲国产欧美一区| 尤物网精品视频| 91久久精品一区二区三区| 韩国av一区二区三区在线观看| 国产精品久久夜| 国产精品久久久久久久久久三级| 欧美绝品在线观看成人午夜影视| 欧美日韩999| 午夜精品网站| 欧美一区二区三区精品电影| 香蕉免费一区二区三区在线观看| 日韩视频在线观看免费| 亚洲毛片av在线| 亚洲精品免费电影| 欧美日韩精品免费观看视频| 久久婷婷综合激情| 狠狠爱www人成狠狠爱综合网| 国产嫩草一区二区三区在线观看| 欧美精品色网| 国产精品久久久久久久久久久久久| 国产视频欧美| 99视频一区二区三区| 欧美一区日本一区韩国一区| 欧美成人一区二区在线| 亚洲图中文字幕| 蜜臀av在线播放一区二区三区| 欧美三区在线| 最新国产の精品合集bt伙计| 欧美在线视频观看免费网站| 亚洲日本欧美在线| 久久精品一区二区三区不卡牛牛 | 欧美一区二区三区在线免费观看| 欧美成人精品在线播放| 国产午夜精品理论片a级探花| 91久久久久久| 久久久久久亚洲精品杨幂换脸 | 亚洲毛片在线免费观看| 久久久久国产一区二区三区四区| 欧美日韩免费观看一区二区三区 | 欧美片第一页| 亚洲电影成人| 久久久久在线观看| 亚洲欧美99| 国产精品高精视频免费| 亚洲最黄网站| 亚洲国产欧美日韩精品| 久久综合网络一区二区| 好看不卡的中文字幕| 亚洲欧美国产视频| 99在线热播精品免费| 欧美另类一区二区三区| 亚洲欧洲日产国码二区| 亚洲国产成人在线播放| 另类人畜视频在线| 最新日韩av| 亚洲美女在线观看| 欧美精品一区三区| 日韩一级精品视频在线观看| 亚洲国产成人av好男人在线观看| 美女精品一区| 亚洲精品久久久久久下一站| 亚洲第一中文字幕| 美女成人午夜| 夜夜嗨av色一区二区不卡| 亚洲人成高清| 欧美日韩精品是欧美日韩精品| 亚洲美女在线看| 亚洲理伦电影| 亚洲特级片在线| 欧美一级在线播放| 国产一区二区丝袜高跟鞋图片| 香蕉亚洲视频| 久久精品官网| 亚洲精品偷拍| 一区二区三区国产精品| 国产精品尤物福利片在线观看| 欧美一区免费| 麻豆精品在线视频| 亚洲视频视频在线| 亚洲欧美一区二区在线观看| 极品裸体白嫩激情啪啪国产精品| 欧美粗暴jizz性欧美20| 欧美日韩精品一区二区三区| 亚洲欧美一区二区精品久久久 | 欧美国产第二页| 亚洲午夜精品在线| 欧美一区二区黄色| 亚洲精品美女免费| 亚洲一区二区三区久久| 激情综合网址| 99国内精品| 激情六月婷婷久久| 最新国产乱人伦偷精品免费网站 | 午夜精品久久一牛影视| 伊人久久亚洲美女图片| 亚洲国产婷婷香蕉久久久久久99| 欧美午夜大胆人体| 欧美成人亚洲成人| 国产精品日韩在线| 亚洲第一网站| 国产日韩欧美二区| 99精品欧美| 在线日韩中文字幕| 在线视频欧美一区| 亚洲久久在线| 久久久国产一区二区三区| 亚洲一区二区三区在线播放| 久久久久国色av免费观看性色| 一本色道88久久加勒比精品| 欧美综合第一页| 香蕉久久夜色| 欧美日韩你懂的| 亚洲成人在线网站| 黑丝一区二区| 欧美一区二区三区四区在线观看| 亚洲美女黄色片| 久久免费高清| 久久综合九色欧美综合狠狠| 国产精品羞羞答答| 一区二区毛片| 亚洲性线免费观看视频成熟| 欧美国产高潮xxxx1819| 欧美www在线| 在线看无码的免费网站| 午夜精品理论片| 性18欧美另类| 国产精品一区二区久久久 | 欧美一二区视频| 亚洲欧美在线网| 国产日韩欧美二区| 亚洲精品日韩在线| 亚洲日本视频| 你懂的亚洲视频| 欧美高清在线视频| 亚洲精品久久嫩草网站秘色| 久久亚洲影院| 亚洲第一福利视频| 亚洲人成网站色ww在线| 欧美成人免费va影院高清| 亚洲电影第1页| 日韩视频精品| 欧美日韩中文字幕在线视频| 一本大道久久精品懂色aⅴ | 麻豆精品视频在线| 亚洲国产第一页| 欧美激情成人在线| 正在播放亚洲| 久久久久久久性| 亚洲国语精品自产拍在线观看| 玖玖玖国产精品| 亚洲精品一区久久久久久| 亚洲一二区在线| 国产色综合久久| 久热精品在线| 亚洲视频在线一区| 鲁鲁狠狠狠7777一区二区| 日韩视频―中文字幕| 国产精品入口66mio| 久久久久久免费| 亚洲老板91色精品久久| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲日本视频| 亚洲在线视频网站| 禁断一区二区三区在线| 欧美国产一区二区| 午夜精品在线观看| 亚洲高清一二三区| 亚洲中午字幕| 亚洲第一二三四五区| 欧美日韩在线另类| 久久亚洲视频| 亚洲在线免费| 亚洲黄色一区| 久久久欧美精品| 中文一区二区| 怡红院精品视频| 欧美日韩ab片| 久久爱另类一区二区小说| 99精品热6080yy久久| 美女国产精品| 亚洲欧美精品一区| 日韩视频在线一区二区三区| 国内久久精品| 国产精品主播| 欧美日韩一区二区在线播放| 久久久青草婷婷精品综合日韩| 99爱精品视频| 亚洲精品美女久久7777777| 免费久久99精品国产自在现线| 欧美一区二区精美| 亚洲一区二区综合| 一区二区三区免费在线观看| 亚洲国产精品一区二区第四页av| 国产视频久久久久|