題 什麼是Md5,河豚和twofish加密算法的差異和過程


我一直想知道並在網上沖浪Md5,河豚和twofish加密算法的差異和過程,但我找不到一個確切的答案,我是一個菜鳥雖然...溫柔..任何答案將是一個很大的幫助..


2
2018-02-21 13:07


起源




答案:


不確定你在追求什麼,但你必須區分 加密 和 散列

示例加密算法:

  • DES
  • CAST-128
  • 河豚
  • Twofish的
  • CAST-256

示例散列算法

  • MD5
  • SHA-1
  • SHA-256

加密是一個可逆過程,您可以在其中獲取原始數據。

散列是一個單向過程,可以將所有數據簡化為20字節“指紋“。


只是為了擴展哈希:

          20 MB file
              |
              ˅
         [MD5 hash]
              |
              ˅
0xe57262ce00045e850fd5392073a6e9cd

哈希是 非常 與加密不同。如果您將數據哈希 不能 拿回來。

想像哈希就像模數加法:

 37
+69
+28
===
134 mod 10 = 4

或者更圖形化:

      37,69,28
         |
         ˅
[Ian's hash algorithm]
         |
         ˅
         4

哈希用於生成“指紋“你的數據。這是一種方式,而不是可逆的。

由於您使用的是“聊天”程序,我認為您是想要的 加密 消息。為此你需要一個 加密 算法,而不是哈希算法。


5
2018-02-21 13:15



我在Lan聊天中評估了Md5加密算法,結果顯示在我使用Md5加密創建的Lan Chat中,我將發送給客戶端的字符串越少,在更大的字符串中花費的時間越長,它傳輸數據的速度越快..為什麼? - RedKing
就像Ian所說,MD5不是加密算法,它是一個哈希算法。它會返回一個32個字符的字符串,無論目標字符串有多長,並且不能“未散列”(您無法取回原始字符串)。可能發生的是因為即使對於1個字符的字符串,它也會產生32個字符的哈希值,因此會產生大量的開銷,這會導致需要更長的時間。 - Synetech
如果Md5是不可逆轉的......為什麼當我使用Md5將加密消息發送到客戶端PC時,客戶端仍然可以讀取我發送的內容,這意味著我已經發送並由Md5加密的消息在解密時客戶收到它..繼承人的主要想法......“發送消息+加密=解密+收到..” - RedKing
@iDarine:你錯了。編輯原始問題以包含您正在使用的代碼。 - Ian Boyd