2013-11-01 152 views
1

基本上標題說什麼。如果我有密碼,比如說「APPLEPIE」,當我使用RC4時,使用「APPLEPIE」作爲密鑰是安全的嗎?當你知道密鑰和明文時,是否有可能破解RC4加密,還是短而相同?RC4安全使用明文作爲加密自己的密鑰?

+0

你會如何解密它? –

+0

我不明白第二句話;如果你知道密鑰,那麼在那裏是沒有理由「打破RC4加密」 –

+0

@GregS我不明白,加密的方式也一樣,這是爲了訪問一個PIC芯片,我有一個密碼,比如上面的例子,然後RC4是我的例如: messtoEncrypt = toArray(「MyPassword」) key = toArray(「MyPassword」) rc4 =新ARC4(key); rc4.encrypt(messtoEncrypt); base64String = messtoEncrypt –

回答

2

這應該使用密鑰生成算法(如PBKDF2)來處理,該算法將允許您以適合於密碼驗證的方式安全地生成密碼中的哈希值(這是我假設您正在執行的操作)。

儘管可以通過這種方式生成一個系統,通過該系統可以安全地使用這種方法(通過使用良好的KDF(例如PBKDF2)將密碼轉換爲RC4密鑰,然後生成隨機數),這是一個很多開銷沒有目的。爲了達到同樣的安全級別,最終的密碼文本會更長,並且需要更長的時間才能生成。最後,你會剛剛創建一個非常複雜的安全散列函數(其第一步是「做你唯一需要做的事情)」,而且你可能在這個過程中犯了一個錯誤,導致系統不安全RC4可能會很難做到正確並且已知相關密鑰攻擊;因此WEP的破解

+0

謝謝你的回答,這將在一個安全的位置,所以加密並不需要太完美。我只是想知道,按照我提到的方式使用RC4有一個弱點,我可以找到明文,知道密鑰和明文在哪裏。請參閱上面的僞代碼。 –

+0

這取決於你如何使用RC4。如果你正確使用RC4,那麼不,這是合理的保護。但是,如果您正確使用RC4,這是一個非常複雜的解決方案。您需要做的第一步是運行KDF(如PBKDF2)。那時,你已經達到了目標。此時添加RC4只會降低系統的安全性。如果你跳過KDF而不是錯誤地使用RC4,那麼是的,這個系統提供的安全性很差。事實上,你用自己加密密碼只會讓事情變得更糟,但即使如此,它也是不安全的。 –

+0

試圖完全清楚:以這種方式使用RC4比簡單的解決方案更安全。不應該使用這種加密算法,而應該使用加密算法,RC4是一個特別糟糕的選擇,因爲它具有衆所周知的相關密鑰攻擊。你想散列你的密碼。使用散列算法。我建議PBKDF2用於此目的。 –