ECB(Electronic Code Book)/電碼本模式
原理非常簡單數(shù)據(jù)按照8個字節(jié)一段進行加密或解密得到一段8個字節(jié)的密文或者明文,最后一段不足8個字節(jié),按照需求補足8個字節(jié)進行計算,之后按照順序?qū)⒂嬎闼玫臄?shù)據(jù)連在一起即可,各段數(shù)據(jù)之間互不影響
特點是 簡單 有利于并行計算 容易被***
用到兩個函數(shù)
void RC532setkey(RC532KEY key, int len, const unsigned char data, int rounds);
根據(jù)密鑰計算密鑰組 連同 輪次round 填充到key中 后面的加密解密都須要用的這個key
data:密鑰 len:密鑰長度 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(解密)
注意這個函數(shù)每次只能處理8字節(jié)的數(shù)據(jù) 加/解密時源數(shù)據(jù)順序傳入
#include <openssl/rc5.h>
#include <stdio.h>
#include <string>
#include <string.h>
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測試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
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章標題:opensslrc5ecb模式-創(chuàng)新互聯(lián)
文章路徑:http://muchs.cn/article30/dgcsso.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、ChatGPT、外貿(mào)建站、搜索引擎優(yōu)化、網(wǎng)站制作、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容