freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

crypt中文使用手冊(cè)-展示頁

2025-07-04 06:21本頁面
  

【正文】 32\output\。由于共享庫和動(dòng)態(tài)庫并沒有在程序中包括庫函數(shù)的內(nèi)容,只是包含了對(duì)庫函數(shù)的引用,因此代碼的規(guī)模比較小。動(dòng)態(tài)庫也是在程序運(yùn)行時(shí)載入,但與共享庫不同的是,使用的庫函數(shù)不是在程序運(yùn)行開始,而是在程序中的語句需要使用該函數(shù)時(shí)才載入。靜態(tài)庫的代碼在編譯時(shí)就已連接到開發(fā)人員開發(fā)的應(yīng)用程序中,而共享庫只是在程序開始運(yùn)行時(shí)才載入,在編譯時(shí),只是簡(jiǎn)單地指定需要使用的庫函數(shù)。當(dāng)然用戶也可以建立自己專用的庫函數(shù),供自己或其它指定的人員使用。另外,所有的程序都將使用標(biāo)準(zhǔn)的C函數(shù)庫。例如:libdbm庫中組包含了對(duì)數(shù)據(jù)庫文件進(jìn)行訪問的dbm函數(shù),需要對(duì)數(shù)據(jù)庫進(jìn)行操作的程序就會(huì)與該庫進(jìn)行連接。這樣就不必在每次開發(fā)程序時(shí)都對(duì)這些通用的函數(shù)進(jìn)行編譯了??梢允孪葘?duì)這些函數(shù)進(jìn)行編譯,然后將它們放置在一些特殊的目標(biāo)代碼文件中,這些目標(biāo)代碼文件就稱為庫。 一般我們最主要的關(guān)于lib文件的麻煩就是出現(xiàn)unresolved symble這類錯(cuò)誤,、.cpp文件到工程里,關(guān)鍵是如果在C++工程里用了C語言寫的lib文件,就必需要這樣包含: extern C { include } 這是因?yàn)镃語言寫的lib文件沒有C++所必須的名字破壞,C函數(shù)不能被重載,因此連接器會(huì)出錯(cuò) C語言中有一些函數(shù)不需要進(jìn)行編譯,有一些函數(shù)也可以在多個(gè)文件中使用。如果不想用lib文件或者是沒有l(wèi)ib文件,可以用WIN32 API函數(shù)LoadLibrary、GetProcAddress。如果你想使用lib文件,就必須: 1 包含一個(gè)對(duì)應(yīng)的頭文件告知編譯器lib文件里面的具體內(nèi)容 2 設(shè)置lib文件允許編譯器去查找已經(jīng)編譯好的二進(jìn)制代碼 如果你想從你的代碼分離一個(gè)dll文件出來代替靜態(tài)連接庫,仍然需要一個(gè)lib文件。一般來說,與動(dòng)態(tài)連接文件相對(duì)比,lib文件也被稱為是靜態(tài)連接庫。 lib和dll文件的區(qū)別和聯(lián)系 .dll是在你的程序運(yùn)行的時(shí)候才連接的文件,因此它是一種比較小的可執(zhí)行文件格式,.。 return 0。int main() { cout hello crypto++ endl。include iostreamusing namespace std。例如在VC7中在項(xiàng)目屬性鏈接器命令行附加選項(xiàng)中添加“”。編譯的時(shí)間比較長(zhǎng)。Crypto++的安裝,如果是windows版的,會(huì)得到一個(gè)VC的項(xiàng)目,直接用VC打開就可以編譯了。基本上密碼學(xué)中需要的主要功能都可以在里面找得到。主要是功能全,統(tǒng)一性好。Crypto++是一個(gè)非常強(qiáng)大的密碼學(xué)庫,在密碼學(xué)界很受歡迎,最初還是Rivest(RSA的R)門下的一個(gè)博士姐姐把這個(gè)庫介紹給我的。Crypto++入門 安裝Crypto++是一個(gè)C++編寫的密碼學(xué)類庫。讀過《過河卒》的朋友還記得作者的那個(gè)不愿意去微軟工作的兒子嗎,就是Crypto++的作者Wei Dai。雖然網(wǎng)絡(luò)上可以找到很多密碼學(xué)相關(guān)的代碼和庫,但是Crypto++有其明顯的優(yōu)點(diǎn)。例如橢圓曲線加密算法和AES在OpenSSL的crypto庫中就還沒最終完成,而在Crypto++中就支持的比較好。Crypto++是由標(biāo)準(zhǔn)的C++寫成的,學(xué)習(xí)C++、密碼學(xué)、網(wǎng)絡(luò)安全都可以通過閱讀Crypto++的源代碼得到啟發(fā)和提高。這里建議大家使用最新版的C++編譯器,因?yàn)橹T如VC6的編譯器是不支持C++的標(biāo)準(zhǔn)的,很多符合C++標(biāo)準(zhǔn)的代碼不能編譯通過??梢詫rypto++源文件的目錄命名為cryptopp,拷貝到編譯器的include目錄(例如:C:\\VC7\include)。Hello World現(xiàn)在寫一個(gè)hello world程序看看能不能編譯通過。include cryptopp/using namespace CryptoPP。 cout Aes block size is AES::BLOCKSIZE endl。} 編譯運(yùn)行,一切OK,哈哈:D,可以用了。 .lib是在你的程序編譯連接的時(shí)候就連接的文件,因此你必須告知編譯器連接的lib文件在那里。當(dāng)你把代碼編譯成這幾種格式的文件時(shí),在以后他們就不可能再被更改。這個(gè)lib文件將被連接到程序告訴操作系統(tǒng)在運(yùn)行的時(shí)候你想用到什么dll文件,一般情況下,lib文件里有相應(yīng)的dll文件的名字和一個(gè)指明dll輸出函數(shù)入口的順序表。事實(shí)上,我們可以在Visual C++ IDE中以二進(jìn)制形式打開lib文件,大多情況下會(huì)看到ASCII碼格式的C++函數(shù)或一些重載操作的函數(shù)名字。一般來說,這些函數(shù)都會(huì)執(zhí)行一些標(biāo)準(zhǔn)任務(wù),如數(shù)據(jù)庫輸入/輸出操作或屏幕控制等。庫文件中的函數(shù)可以通過連接程序與應(yīng)用程序進(jìn)行連接。   不同類型的應(yīng)用程序?qū)?huì)使用不同的函數(shù)庫。數(shù)學(xué)應(yīng)用程序?qū)⑹褂脭?shù)學(xué)庫libm,XWindows應(yīng)用程序?qū)⑹褂肵lib庫,libX11。libc,該庫中包含了諸好內(nèi)存管理或輸入輸出操作的基本函數(shù),這些庫都存放在/usr/lib這些系統(tǒng)公用的目錄中,系統(tǒng)中的任何用戶都可以利用這些庫。
  庫可以有三種使用的形式:靜態(tài)、共享和動(dòng)態(tài)。動(dòng)態(tài)庫則是共享庫的另一種變化形式。動(dòng)態(tài)庫可以在程序運(yùn)行期間釋放動(dòng)態(tài)庫所占用的內(nèi)存,騰出空間供其它程序使用。
Crypto++庫在VS 2005中的使用——RSA加解密 一. 下載Crypto++ LibraryCrypto++ Library的官方網(wǎng):二. 建立自己使用的Crypto++ Library由于從官方網(wǎng)下載的Crypto++庫是開源的,只有源文件和幾個(gè)可以生成lib、dll的工程,以及一個(gè)使用的例子工程,因此希望生成自己建的工程能使用的SDK。作者當(dāng)時(shí)用的是Crypto++ 。第一次時(shí)它會(huì)報(bào)錯(cuò)說“d:\cryptopp54\(3) : fatal error C1033: cannot open program database 39?!?,沒關(guān)系,按這樣再build一次,就可以build成功了。將Crypto++庫中的所有頭文件復(fù)制到“include”文件夾中,“debug”和“release”中。里面源碼如下:include include include include include iostreamusing namespace std。pragma ment(lib, )//// 函數(shù)聲明//void GenerateRSAKey(unsigned int keyLength, const char *privFilename, const char *pubFilename, const char *seed)。string RSADecryptString(const char *privFilename, const char *ciphertext)。 GlobalRNG()。 char pubKey[128] = {0}。 // 生成 RSA 密鑰對(duì) strcpy(priKey, pri)。 // 生成的公鑰文件 strcpy(seed, seed)。 // RSA 加解密 char message[1024] = {0}。 strcpy(message, Hello World!)。 // RSA 加密 coutEncrypted Text:\tencryptedTextendlendl。 // RSA 解密 coutDecrypted Text:\tdecryptedTextendlendl。 ((byte *)seed, strlen(seed))。 HexEncoder privFile(new FileSink(privFilename))。 ()。 HexEncoder pubFile(new FileSink(pubFilename))。 ()。 RSAES_OAEP_SHA_Encryptor pub(pubFile)。 ((byte *)seed, strlen(seed))。 StringSource(message, true, new PK_EncryptorFilter(randPool, pub, new HexEncoder(new StringSink(result))))。}//// RSA解密//string RSADecryptString(const char *privFilename, const char *ciphertext){ FileSource privFile(privFilename, true, new HexDecoder)。 string result。 return result。 GlobalRNG(){ static RandomPool randomPool。}2. 設(shè)置工程屬性選擇工程屬性(Alt + F7):(1)“Configuration Properties”→“C/C++” →“General”,右邊的“Additional Include Directories”設(shè)置為上面建好的Crypto++ SDK的Include文件夾,“C:\Program Files\CyptoPP\include”;(2) “Configuration Properties”→“Linker” →“General”,右邊的“Additional Library Directories”設(shè)置為上面建好的Crypto++ SDK的Lib\Debug文件夾,“C:\Program Files\CyptoPP\lib\debug”(Release模式下對(duì)應(yīng)著Release文件夾);(3) “Configuration Properties”→“C/C++” →“Code Generation”,右邊的“Runtime Library”設(shè)置為“Multithreaded Debug (/MTd)”(Release模式下對(duì)應(yīng)著“Multithreaded (/MT)”)3. 運(yùn)行程序(Ctrl + F5)正常運(yùn)行的輸出結(jié)果為:Origin Text: Hello World!Encrypted Text: 79C72A482482EF45111F961772456310792AB735ECF72329ECB26292D2B26374824E0E35D24A63CB03B867DD2C70B001FD4B2B33FBC984BD229A5226F284B889901817976A6803229E8351372C5E28E8BEBA2A94E7CF61A8A162F0BA2F3E0C35D26842D92EC4866D25E6BF878743E48184D9F6FF9BA690F953568D017C02D540Decrypted Text: Hello World!如果上面的第(3)步?jīng)]有設(shè)置則會(huì)出現(xiàn)以下鏈接錯(cuò)誤:() : error LNK2005: public: __thiscall std::basic_stringchar,struct std::char_traitschar,class std::allocatorchar ::basic_stringchar,struct std::char_traitschar,class std::allocatorchar (char const *) (??0?$basic_stringDU?$char_traitsDstdV?$allocatorD2stdQAEPBDZ) already defined in ()。 ?下面是一些使用中的總結(jié): ?一、將一個(gè)緩沖區(qū)編碼string str。byte buf[1024]。SetDlgItemText(IDC_EDIT_TEST, ())。 ?二、BufferedTransformation、BlockTransformation、StreamTransformation、HashTransformation這幾個(gè)類都是對(duì)輸入的緩沖區(qū)進(jìn)行某種運(yùn)算后輸出,但是有一些差別:是對(duì)緩沖區(qū)進(jìn)行某種變換,這種變換式可以還原的:基本與 BufferedTransformation 相同,不同之處在于它是以塊為單位:與 BufferedTransformation 差不多相同,不同之處在于是以流式方式,如網(wǎng)絡(luò)套結(jié)字:是對(duì)緩沖區(qū)計(jì)算哈希值,這種變換是不可還原的 ?三、Sink類及其派生類的作用Sink 類及其派生類,以下簡(jiǎn)稱 Sink 類,它們的作用是在真實(shí)的數(shù)據(jù)和緩沖區(qū)變換類之間起一個(gè)連接的作用, Sink 類由 BufferedTrans
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1