真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

opensslrc5ecb模式

ECB(Electronic Code Book)/電碼本模式
原理非常簡(jiǎn)單數(shù)據(jù)按照8個(gè)字節(jié)一段進(jìn)行加密或解密得到一段8個(gè)字節(jié)的密文或者明文,最后一段不足8個(gè)字節(jié),按照需求補(bǔ)足8個(gè)字節(jié)進(jìn)行計(jì)算,之后按照順序?qū)⒂?jì)算所得的數(shù)據(jù)連在一起即可,各段數(shù)據(jù)之間互不影響
特點(diǎn)是 簡(jiǎn)單 有利于并行計(jì)算 容易被***

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、成都做網(wǎng)站、溆浦網(wǎng)絡(luò)推廣、重慶小程序開(kāi)發(fā)、溆浦網(wǎng)絡(luò)營(yíng)銷、溆浦企業(yè)策劃、溆浦品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供溆浦建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com

用到兩個(gè)函數(shù)
void RC532setkey(RC532KEY key, int len, const unsigned char data, int rounds);
根據(jù)密鑰計(jì)算密鑰組 連同 輪次round 填充到key中 后面的加密解密都須要用的這個(gè)key
data:密鑰 len:密鑰長(zhǎng)度 0到2040位 rounds:輪次 可選 8/12/16

void RC532ecbencrypt(const unsigned char in, unsigned char out, RC532KEY key, int enc);
in:輸入 out:輸出 key:RC532setkey中初始化好的 enc: 可選 RC5ENCRYPT(加密)/RC5DECRYPT(解密)
注意這個(gè)函數(shù)每次只能處理8字節(jié)的數(shù)據(jù) 加/解密時(shí)源數(shù)據(jù)順序傳入


#include 
#include 
#include 
#include 

int main()
{
    RC5_32_KEY  rckey;
    unsigned char pwd[20] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0x10, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0xe1, 0xe2, 0xe3, 0xe4 };

    RC5_32_set_key(&rckey, 20, pwd, RC5_8_ROUNDS);

    std::string in = "accidfdsa測(cè)試dfd";
    std::string strout = "";
    std::string strjie = "";

    char tempin[8];
    char tempout[8];
    // 加密
    for(size_t i = 0; i < in.size(); i += 8)
    {
        if(i + 8 <= in.size())
            memcpy(tempin, in.c_str()+i, 8);
        else
        {
            memset(tempin, 0, 8);
            memcpy(tempin, in.c_str()+i, in.size()-i);
        }

        RC5_32_ecb_encrypt((const unsigned char*)(tempin), (unsigned char*)tempout, &rckey, RC5_ENCRYPT);
        strout.append(tempout, 8);
    }

    // 解密
    for(size_t i = 0; i < strout.size(); i += 8)
    {
        if(i + 8 <= strout.size())
            memcpy(tempin, strout.c_str()+i, 8);
        else
        {
            memset(tempin, 0, 8);
            memcpy(tempin, strout.c_str()+i, strout.size() - i);
        }   

        RC5_32_ecb_encrypt((const unsigned char*)(tempin), (unsigned char*)tempout, &rckey, RC5_DECRYPT);

        if(strjie.size() + 8 > in.size())
            strjie.append(tempout, in.size() - strjie.size());
        else
            strjie.append(tempout, 8);
    }

    printf("-- %s", strjie.c_str());                                                                                                                                                                                                                                          
    return 0;
}

g++ -g -o main main.cpp -I/usr/include/openssl -lssl -lcrypto -L/usr/lib64


網(wǎng)頁(yè)名稱:opensslrc5ecb模式
網(wǎng)址分享:http://weahome.cn/article/ppepco.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部