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

阿遠(yuǎn)之生當(dāng)為

openssl加密

最近搞了下openssl 的加密,做個(gè)mark,csdn這破貨用不起了

rsa生成密鑰對(duì)


void ConvertToArray(ostream& stream, const string& name, unsigned char* buf, size_t size)
{
    stream 
<< "const unsigned char " << name << "[" << size << "] = {" << endl;
    
for (size_t i = 0; i < size; i++)
    {
        
if (i != 0)
            stream 
<< ",";
        stream 
<< (int)buf[i];
    }
    stream 
<< endl << "};" << endl << endl;
}
void ConvertToArray(ostream& stream, const string &name, RSA* key, bool isPrivate)
{
    
int size = 0;
    
if (isPrivate)
        size 
= i2d_RSAPrivateKey(key, NULL);
    
else
        size 
= i2d_RSAPublicKey(key, NULL);
    
if (size < 0)
    {
        cout 
<< "SaveRsKey error" << endl;
        
return;
    }
    unsigned 
char* prkey = new unsigned char[size + 20];
    unsigned 
char *= prkey;
    
if (isPrivate)
        size 
= i2d_RSAPrivateKey(key, &p);
    
else
        size 
= i2d_RSAPublicKey(key, &p);
    
if (size < 0)
    {
        cout 
<< "SaveRsKey error" << endl;
    }
    
else
    {
        ConvertToArray(stream, name, prkey, size);
    }
    delete[] prkey;
}
void SaveRSAKey(const string& fileName, RSA* key, bool isPrivate )
{
    
int size = 0;
    
if (isPrivate)
        size 
= i2d_RSAPrivateKey(key, NULL);
    
else
        size 
= i2d_RSAPublicKey(key, NULL);
    
if (size < 0)
    {
        cout 
<< "SaveRsKey error" << endl;
        
return;
    }
    unsigned 
char* prkey = new unsigned char[size + 20];
    unsigned 
char *= prkey;
    
if (isPrivate)
        size 
= i2d_RSAPrivateKey(key, &p);
    
else
        size 
= i2d_RSAPublicKey(key, &p);
    
if (size < 0)
    {
        cout 
<< "SaveRsKey error" << endl;
    }
    
else
    {
        ofstream f(fileName.c_str(), ios_base::
out | ios_base::binary);
        
if (!f)
        {
            cout 
<< "SaveRsKey error" << endl;
        }
        
else
        {
            
//ConvertToArray()
            f.write((char*)prkey, size);
            f.close();
        }
    }
    delete[] prkey;
}
void GenKeys()
{
    ostringstream keys;
    ofstream fpbtext(
"f:\\pbkeys.txt", ios_base::out);
    ofstream fprtext(
"f:\\prkeys.txt", ios_base::out);
    
for (int i = 0; i < 10; i++)
    {
        ostringstream ps, ks, pn, kn;
        ps 
<< "f:\\key" << i << ".pbk";
        pn 
<< "pbk" << i;
        ks 
<< "f:\\key" << i << ".prk";
        kn 
<< "prk" << i;
        RSA 
*key = RSA_generate_key(512, RSA_F4, NULL, NULL);
        
//SaveRSAKey(ps.str(), key, false);
        
//SaveRSAKey(ks.str(), key, true);
        ConvertToArray(fpbtext, pn.str(), key, false);
        ConvertToArray(fprtext, kn.str(), key, 
true);
        RSA_free(key); 
    }
}

rsa加密和解密


        unsigned char* prk = &prk0[0];
        key 
= d2i_RSAPrivateKey(NULL, (const unsigned char**)&prk, sizeof(prk0));
        
//key = RSA_generate_key(512, RSA_F4, NULL, NULL);
        plen = sizeof(ptext_ex) - 1
        num 
= RSA_private_encrypt(plen, ptext_ex, ctext, key, 
            RSA_PKCS1_PADDING); 
        
if (num != RSA_size(key))   //模數(shù)長(zhǎng)度  
        { 
            printf(
"%d PKCS#1 v1.5 encryption failed:%s!\n", RSA_size(key), ERR_reason_error_string(ERR_get_error())); 
            err
=1
            
goto next; 
        } 
        
//加密后的數(shù)據(jù)  
        printf("encrypted text: \n"); 
        
for (i = 0; i < num; i++
        { 
            printf(
"\\x%02x", ctext[i]); 
        } 
        printf(
"\n"); 
        printf(
"RSA_private_encrypt num: %d\n", num); 
        RSA_free(key); 
        unsigned 
char* pbk = &pbk0[0];
        key 
= d2i_RSAPublicKey(NULL, (const unsigned char**)&pbk, sizeof(pbk0));
        num 
= RSA_public_decrypt(num, ctext, ptext, key, 
            RSA_PKCS1_PADDING); 
        
if (num != plen || memcmp(ptext, ptext_ex, num) != 0
        { 
            printf(
"PKCS#1 v1.5 decryption failed!\n"); 
            err
=1
        } 
        
else 
            printf(
"PKCS #1 v1.5 encryption/decryption ok\n"); 
        printf(
"RSA_public_decrypt num: %d\n", num); 
        ptext[num] 
= '\0';    //字符串結(jié)尾 
        printf("ptext: %s\n", ptext); 
        RSA_free(key);

 

posted on 2011-12-26 14:46 muroachanf 閱讀(959) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲国产精品成人综合| 欧美日韩一级片在线观看| 久久综合久久88| 久久天天综合| 免费欧美日韩| 亚洲激情综合| 一本色道综合亚洲| 欧美一区三区二区在线观看| 久久乐国产精品| 欧美伊人久久| 亚洲欧美国产va在线影院| 亚洲少妇一区| 欧美在线视频一区二区三区| 蜜桃久久精品乱码一区二区| 欧美精品成人91久久久久久久| 国产精品久久久亚洲一区| 国产一区二区三区久久久| 亚洲老司机av| 久久午夜色播影院免费高清| 亚洲精品中文字幕在线| 欧美在线不卡| 国产精品大片wwwwww| 亚洲国产老妈| 久久久久久自在自线| 亚洲看片免费| 狂野欧美性猛交xxxx巴西| 国产精品久久久一区麻豆最新章节| 永久555www成人免费| 亚洲欧美另类中文字幕| 欧美激情一区二区在线 | 久久免费精品日本久久中文字幕| 欧美成人免费va影院高清| 国产精品一卡二| 日韩午夜电影在线观看| 老牛国产精品一区的观看方式| 日韩一二三区视频| 欧美大片免费观看在线观看网站推荐| 欧美日韩精品免费观看视一区二区 | 久久久噜噜噜久久| 国产精品久久国产三级国电话系列| 亚洲观看高清完整版在线观看| 欧美一区二区三区在线免费观看| 日韩视频免费看| 欧美激情一区二区在线| 影音先锋国产精品| 久久aⅴ国产紧身牛仔裤| 在线一区观看| 国产精品va在线播放我和闺蜜| 99v久久综合狠狠综合久久| 欧美电影免费观看| 久久在线视频在线| 亚洲成色999久久网站| 久久人人97超碰国产公开结果 | 亚洲黄色在线| 欧美成人官网二区| 亚洲日本一区二区三区| 欧美高清hd18日本| 另类国产ts人妖高潮视频| 伊人成年综合电影网| 欧美日本一道本在线视频| 欧美成人精品影院| 欧美精品一区二区三区蜜臀 | 欧美三级在线视频| 中文精品视频| 一区二区三区日韩精品| 国产精品成人免费精品自在线观看| 99一区二区| 亚洲美女电影在线| 欧美性理论片在线观看片免费| 亚洲一区二区三区国产| 亚洲视频碰碰| 国产小视频国产精品| 久久综合给合久久狠狠狠97色69| 久久综合电影| 亚洲精品在线免费| 亚洲人成网站色ww在线| 欧美日韩在线电影| 欧美在线视频免费观看| 久久久久国产成人精品亚洲午夜| 最新国产精品拍自在线播放| 日韩一区二区精品视频| 国产精品午夜av在线| 久久免费视频观看| 欧美另类在线观看| 欧美中文字幕久久| 久久影音先锋| 一区二区三区四区国产| 午夜在线视频一区二区区别| 一区二区三区在线看| 99热这里只有成人精品国产| 国产亚洲欧美日韩美女| 亚洲激情视频网| 国产一区二区高清视频| 亚洲日本国产| 韩国欧美一区| 99这里有精品| 国产尤物精品| 91久久精品国产91久久性色tv| 国产麻豆成人精品| 亚洲国产清纯| 韩国女主播一区二区三区| 亚洲免费观看高清完整版在线观看熊 | 在线播放不卡| 在线性视频日韩欧美| 在线观看视频亚洲| 亚洲夜间福利| 日韩亚洲精品视频| 久久久青草青青国产亚洲免观| 一本大道av伊人久久综合| 久久成人免费电影| 亚洲在线免费视频| 欧美成人国产va精品日本一级| 亚洲在线观看视频| 欧美日韩一区二区高清| 久久精品视频在线| 国产精品白丝av嫩草影院| 猛男gaygay欧美视频| 国产午夜精品理论片a级大结局| 日韩视频在线播放| 亚洲人www| 久久久亚洲午夜电影| 久久久久久亚洲精品杨幂换脸 | 久久一区二区精品| 国产精品一级久久久| 99re6这里只有精品| 亚洲精品一区中文| 美女精品网站| 欧美国产另类| 樱花yy私人影院亚洲| 久久久国产精品亚洲一区 | 欧美日韩在线三级| 亚洲精品日本| 亚洲美女av黄| 免费日韩成人| 91久久在线播放| 亚洲欧洲综合另类在线| 欧美成人亚洲成人日韩成人| 亚洲韩日在线| 亚洲午夜视频在线观看| 国产精品入口麻豆原神| 亚洲综合色视频| 久久精品国产在热久久| 激情五月综合色婷婷一区二区| 久久久久九九视频| 欧美激情视频免费观看| 99视频精品全国免费| 国产精品久久激情| 欧美有码在线观看视频| 免费在线观看日韩欧美| 亚洲卡通欧美制服中文| 欧美系列电影免费观看| 亚洲欧美日本国产专区一区| 久久激情视频久久| 亚洲高清123| 农村妇女精品| 亚洲午夜精品久久| 久久综合久久综合这里只有精品| 亚洲激情视频网| 国产精品久久久久免费a∨大胸| 欧美中文字幕| 亚洲人www| 欧美在线www| 亚洲精品免费在线| 国产精品一二三视频| 女同性一区二区三区人了人一| 一本久久综合亚洲鲁鲁| 久久综合色影院| 亚洲性图久久| 亚洲激情成人| 国产情人节一区| 欧美精品在线视频| 欧美在线视频免费观看| 亚洲破处大片| 久久久久久久综合日本| 一本一本久久a久久精品综合妖精| 国产精品一区三区| 在线一区免费观看| 亚洲图片欧洲图片av| 欧美成人亚洲| 国产一区二区在线免费观看 | 亚洲国产精品久久久久秋霞不卡| 一本色道久久综合精品竹菊| 国产一区成人| 欧美日韩直播| 老司机67194精品线观看| 亚洲少妇自拍| 亚洲国产精品一区二区www在线| 午夜宅男久久久| 亚洲激精日韩激精欧美精品| 国产情侣久久| 国产精品mm| 欧美久久久久久| 久久人人爽人人爽| 午夜精品福利一区二区蜜股av| 最新国产成人在线观看| 久久综合电影| 久久久久se| 久久精品免费看| 亚洲欧美日韩一区二区三区在线观看 | 韩国av一区二区三区|