2017-03-25 113 views
-2

我想用RC6加密和解密字符串,但我不明白它如何與Crypto ++庫一起工作,您能否給我一個片段?如何使用Crypto ++加密和解密RC6

謝謝你!

+3

有幾個問題。這個問題看起來過於寬泛,缺乏研究,尋找一般的指導。我認爲這個問題可以通過添加如下信息來改善:CryptoPP庫的在線文檔你看過什麼,你寫了哪些代碼並嘗試到目前爲止,以什麼方式工作,包括你看到的錯誤。另外,你以前使用過其他加密庫嗎?如果是這樣,也許與使用CryptoPP的經驗形成對比,並解釋您從其他經驗中獲得的CryptoPP的任何預期行爲。 –

+0

嗨,搜索了很多,但我找不到代碼示例,我讀了CryptoPP文檔,但我不明白RC6加密和字符串解密如何工作,這就是爲什麼我要來問你一個問題!謝謝 – dirac

+2

RC6是AES的候選人之一。它是圖書館提供的衆多分組密碼之一。找到一些用於AES的Crypto ++代碼,然後執行AES→RC6的複製/粘貼。對於這個問題,任何分組密碼都應該在這種情況下工作,包括Camellia和3DES。我們在wiki的[RC6](https://www.cryptopp.com/wiki/RC6)上添加了一個頁面,但它只是一個Camellia的複製/粘貼。 – jww

回答

2

下面是code from the Crypto++ website的片段,演示瞭如何使用該庫使用AES加密字符串(其中正如jww指出的,「RC6是AES候選者之一」,並且該片段應該可用作RC6的起點以及):

byte key[AES::DEFAULT_KEYLENGTH], iv[AES::BLOCKSIZE]; 
string plainText; 

// ... populate key, iv, plainText here 

string cipher; 
StringSink* sink = new StringSink(cipher); 
Base64Encoder* base64_enc = new Base64Encoder(sink); 
CBC_Mode<AES>::Encryption aes(key, sizeof(key), iv); 
StreamTransformationFilter* aes_enc = new StreamTransformationFilter(aes, base64_enc); 
StringSource source(plainText, true, aes_enc); 

我在Internet上搜索Crypto ++庫的示例代碼時發現此信息。無可否認,我沒有像我期望的那樣直截了當。

StackOverflow上的相關邊欄指出了其他頁面,我相信這些頁面也可以提供幫助,例如Q & A對於Encrypt/Decrypt byte array Crypto++

更新:更新於今天(2017年3月26日)在the RC6 web page at the Crypto++ wiki site剛剛出現。它現在有RC6特定的代碼,看起來正是你所需要的。

+0

這是AES,而不是RC6。 – TheGreatContini

+2

@TheGreatContini是同意的。 AES並不完全是RC6。今天有人編輯了crypto ++ wiki網站,並專門添加了RC6的代碼。我更新了我的答案,現在就指出這一點。 –

+1

@LouisLangholtz - 我們使用Stack Overflow(和我們的郵件列表)作爲反饋循環。如果用戶遇到麻煩,我們所做的第一件事情就是快速驗屍。我們認爲如果一個用戶有問題,那麼其他用戶會有問題。在這種情況下,其中一個影響因素是我們缺乏文檔。 – jww