1
對於某些項目,我需要以加密形式存儲一些短字符串。對於目前的目的,使用它自己來加密它是理想的。使用與數據相同的密鑰對數據進行編碼可以嗎?
# This would be the usual way:
result = AES_ENCRYPT(string, key)
# but I would like to do it this way:
result = AES_ENCRYPT(string, string)
相同的字符串本身將被用作密鑰!
「字符串」總是一些短文本,如20個字母和數字。這個解決方案似乎比使用任何散列函數更好,因爲散列可能導致衝突 - 不同的字符串可能會產生相同的結果,我知道它的概率很低,但仍然不是零,所以我想避免這種結果。
我的問題是,我的方法安全嗎?使用數據本身編碼數據,是否會導致任何安全問題?這是否意味着,如果「攻擊者」知道它是通過加密我的方式產生的,那麼解密結果可能會更容易?謝謝。
注意:爲簡單起見,我沒有提到幾個不需要解釋的事情。只要相信我,我知道我在做什麼。我只是問這種方法是否會導致任何麻煩。
那麼,如果不知道未加密的文本(因此不需要進行任何解密),它會被解密*。 –
這是一個自制散列函數,它可能導致衝突。改用標準的散列函數。 – CodesInChaos
@ Scott-Hunter我不需要解密它。爲了簡單的問題,我沒有提到幾個不需要解釋的事情。只要相信我,我知道我在做什麼。我只是問這是否會導致麻煩。 –