日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

QT mingw 编译Crypto++ 5.6.4

發布時間:2025/3/19 c/c++ 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT mingw 编译Crypto++ 5.6.4 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、下載Crypto++?v5.6.4,并解壓;

https://codeload.github.com/weidai11/cryptopp/zip/CRYPTOPP_5_6_4

2、新建文件?cryptopp564 ,把解壓后的文件全部復制進去,不要子文件夾路徑;

3、隨便復制一個其它項目的.pro到當前目錄下,粘貼后,將這個文件重命名為?CryptoPPLib.pro??編輯器打開,內容清空,粘貼以下內容;

CryptoPPLib.pro文件內容如下:

QT -= core guiTARGET = CryptoPPLibTEMPLATE = libDEFINES += CRYPTOPPLIB_LIBRARYSOURCES += \3way.cpp \adler32.cpp \algebra.cpp \algparam.cpp \arc4.cpp \asn.cpp \authenc.cpp \base32.cpp \base64.cpp \basecode.cpp \bfinit.cpp \blowfish.cpp \blumshub.cpp \camellia.cpp \cast.cpp \casts.cpp \cbcmac.cpp \ccm.cpp \channels.cpp \cmac.cpp \cpu.cpp \crc.cpp \cryptlib.cpp \default.cpp \des.cpp \dessp.cpp \dh.cpp \dh2.cpp \dll.cpp \dsa.cpp \eax.cpp \ec2n.cpp \eccrypto.cpp \ecp.cpp \elgamal.cpp \emsa2.cpp \eprecomp.cpp \esign.cpp \files.cpp \filters.cpp \fips140.cpp \gcm.cpp \gf2_32.cpp \gf2n.cpp \gf256.cpp \gfpcrypt.cpp \gost.cpp \gzip.cpp \hex.cpp \hmac.cpp \hrtimer.cpp \ida.cpp \idea.cpp \integer.cpp \iterhash.cpp \luc.cpp \mars.cpp \marss.cpp \md2.cpp \md4.cpp \md5.cpp \misc.cpp \modes.cpp \mqueue.cpp \mqv.cpp \nbtheory.cpp \network.cpp \oaep.cpp \osrng.cpp \panama.cpp \pch.cpp \pkcspad.cpp \polynomi.cpp \pssr.cpp \pubkey.cpp \queue.cpp \rabin.cpp \randpool.cpp \rc2.cpp \rc5.cpp \rc6.cpp \rdtables.cpp \rijndael.cpp \ripemd.cpp \rng.cpp \rsa.cpp \rw.cpp \safer.cpp \salsa.cpp \seal.cpp \seed.cpp \serpent.cpp \sha.cpp \sha3.cpp \shacal2.cpp \shark.cpp \sharkbox.cpp \simple.cpp \skipjack.cpp \socketft.cpp \sosemanuk.cpp \square.cpp \squaretb.cpp \strciphr.cpp \tea.cpp \tftables.cpp \tiger.cpp \tigertab.cpp \trdlocal.cpp \ttmac.cpp \twofish.cpp \vmac.cpp \wait.cpp \wake.cpp \whrlpool.cpp \winpipes.cpp \xtr.cpp \xtrcrypt.cpp \zdeflate.cpp \zinflate.cpp \zlib.cppHEADERS += \3way.h \adler32.h \aes.h \algebra.h \algparam.h \arc4.h \argnames.h \asn.h \authenc.h \base32.h \base64.h \basecode.h \ # bench \blake2.h \blowfish.h \blumshub.h \camellia.h \cast.h \cbcmac.h \ccm.h \chacha.h \channels.h \cmac.h \config.h \cpu.h \crc.h \cryptlib.h \default.h \des.h \dh.h \dh2.h \dll.h \dmac.h \dsa.h \eax.h \ec2n.h \eccrypto.h \ecp.h \elgamal.h \emsa2.h \eprecomp.h \esign.h \factory.h \fhmqv.h \files.h \filters.h \fips140.h \fltrimpl.h \gcm.h \gf2_32.h \gf2n.h \gf256.h \gfpcrypt.h \gost.h \gzip.h \hex.h \hkdf.h \hmac.h \hmqv.h \hrtimer.h \ida.h \idea.h \integer.h \iterhash.h \keccak.h \lubyrack.h \luc.h \mars.h \md2.h \md4.h \md5.h \mdc.h \mersenne.h \misc.h \modarith.h \modes.h \modexppc.h \mqueue.h \mqv.h \nbtheory.h \network.h \nr.h \oaep.h \oids.h \osrng.h \ossig.h \panama.h \pch.h \pkcspad.h \polynomi.h \pssr.h \pubkey.h \pwdbased.h \queue.h \rabin.h \randpool.h \rc2.h \rc5.h \rc6.h \rdrand.h \resource.h \rijndael.h \ripemd.h \rng.h \rsa.h \rw.h \safer.h \salsa.h \seal.h \secblock.h \seckey.h \seed.h \serpent.h \serpentp.h \sha.h \sha3.h \shacal2.h \shark.h \simple.h \skipjack.h \smartptr.h \socketft.h \sosemanuk.h \square.h \stdcpp.h \strciphr.h \tea.h \tiger.h \trap.h \trdlocal.h \trunhash.h \ttmac.h \twofish.h \ # validate.h \vmac.h \wait.h \wake.h \whrlpool.h \winpipes.h \words.h \xtr.h \xtrcrypt.h \zdeflate.h \zinflate.h \zlib.h \unix {target.path = /usr/libINSTALLS += target}# added manuallyLIBS += -lws2_32CONFIG += warn_off

4、刪除當前目錄下?GNUmakefile?此文件;

5、編譯庫lib

?5. 1、?用QTCreator打開CryptoPPLib.pro;

5.?2、取消,shadow?build勾選;

5.3、執行qmake

5.4、點擊最下放構建,釘錘標志(這是生成lib,不需要執行?run)即可。

5.5、點擊箭頭處切換到release,繼續執行1-4步。

5.6、最終會生成,debug和release兩個文件里,各有一個.a和一個.dll,如下圖;

至此,基于Crypto++的lib編譯完成。

?

二.測試QT調用;

1、新建一個qt項目;

2、main目錄下新建文件夾cryptopp;

3、在cryptopp文件夾里,新建 Include?和?Lib?共兩個子文件夾;

4、將原cryptopp564文件夾下所有頭文件(.h)文件復制到?Include文件夾;

5、將原來5.6的debug和release文件,復制到Lib文件夾里;

將以下內容追加到,當前測試項目,.pro文件結尾;

CONFIG += warn_off LIBS += -lws2_32win32:CONFIG(release, debug|release): LIBS += -L$$PWD/release/ -lCryptoPPLibelse:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/cryptopp/Lib/debug/ -lCryptoPPLibelse:unix: LIBS += -L$$PWD/ -lCryptoPPLib DEPENDPATH += $$PWD/ INCLUDEPATH+=$$PWD/cryptopp/Include

?

6、包含頭文件,調用,測試,如下:

#include <QCoreApplication> #include <qdebug.h> #include <iostream>#define CRYPTOPP_DEFAULT_NO_DLL #include <dll.h> #ifdef CRYPTOPP_WIN32_AVAILABLE #include <windows.h> #endif #include "base32.h" #include "base64.h" #include <filters.h> using namespace CryptoPP; using namespace std;int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);string src="讓世界愛上中國造!";string dst;StringSource(src, true, new Base64Encoder(new StringSink(dst)));qDebug()<<"encode src="<<src.c_str()<<endl;cout<<"encode dst="<<dst<<endl;string src2="6K6p5LiW55WM54ix5LiK5Lit5Zu96YCg77yB";string dst2;StringSource(src2, true, new Base64Decoder(new StringSink(dst2)));cout<<"decode src2="<<src2<<endl;qDebug()<<"decode dst2="<<dst2.c_str()<<endl;return a.exec(); }

?

結果如下:?base64編碼?base64解碼

總結

以上是生活随笔為你收集整理的QT mingw 编译Crypto++ 5.6.4的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。