2017-04-13 25 views
0

我有一些加密數據,使用rc2-64-cbc NO PADDING進行加密。我能夠解密罰款。如何檢測用於解密openssl的錯誤密鑰rc2-64-cbc nopad

問題:即使加密的內容是用錯誤的密鑰加密的,我的解密也不會出錯,而是解密爲一些垃圾值,因爲我相信它的rc2和沒有填充。

我嘗試了openssl Linux命令提示符和我的C/C++程序(使用EVP_ * API調用)。

是否有任何openssl選項/方式來檢測這個錯誤的鍵使用? (命令行或EVP_ * C/C++ API調用)

+1

1)沒有語言C/C++。 2)這是關於openssl的,而不是C或C++語言。 – Olaf

回答

2

除非將某種形式的身份驗證添加到加密數據中,否則無法確定。最好的辦法是尋找解密的「有意義的」,解密的數據要麼是正確的,要麼顯示爲無法與隨機字節區分的字節序列。

假設沒有驗證被添加到該消息可能的方法包括:

  1. 有一些知道在該消息中的已知位置的正確字節,這被稱爲一個嬰兒牀,一個例子是在二戰德國天氣報告以可預測的文字開始。

  2. 做一個隨機性的測試。

  3. 如果數據是文本檢查無效字符,如0x00 - 0x1f。

  4. 想想適用於您的數據的其他測試。