cryptopp 加解密的坑

C++ 下兩大加密庫, openssl 和 cryptopp,openssl 使用更廣泛一些,不過編譯起來得用命令行,且生成的都是動態(tài)庫,不過接口是純 C 的,調(diào)用方使用更方便一些; cryptopp 使用 C++ 模板編寫,可編譯為靜態(tài)庫使,不過使用不當(dāng),會莫名其妙的 crash。

cryptopp 的鏈?zhǔn)秸{(diào)用,new 出來的對象你看不到 delete,估計(jì)是調(diào)用方維持了指針,負(fù)責(zé) delete。

字節(jié)緩沖區(qū)可用 std::vector<byte> 也可用自帶的 ByteQueue 和 SecByteBlock。

最坑的是 AES 加解密已經(jīng)不支持構(gòu)造函數(shù)入?yún)ⅲ酶淖冇?/p>

原始方式

 CFB_Mode<AES>::Encryption cfbEncryption(key, key.size(), iv);

最新方式

CFB_Mode< AES >::Encryption e;
e.SetKeyWithIV(&key_block[0], key_block.size(), &iv_block[0]);

生成隨機(jī)密鑰

AutoSeededRandomPool rnd;
SecByteBlock key(AES::DEFAULT_KEYLENGTH);
rnd.GenerateBlock( key, key.size());
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,901評論 25 709
  • 接著上節(jié) condition_varible ,本節(jié)主要介紹future的內(nèi)容,練習(xí)代碼地址。本文參考http:/...
    jorion閱讀 15,039評論 1 5
  • 素質(zhì),真的與職業(yè)、學(xué)歷、年齡、身份無關(guān)…………有的人身體不完整,但靈魂是完整且崇高的;有的人身體是完整的,...
    真水無香eqq閱讀 265評論 0 1
  • 人生的大部分時候無非就是我們自己把自己困住了,或是逃避,或是害怕,種種的心態(tài)都是自己施加給自己的,所以,成為別...
    凝生閱讀 280評論 0 1

友情鏈接更多精彩內(nèi)容