2021/03/23

What is Encryption in Delphi? (2)


DataSnap Server 有提供 PC1 加密過濾器,一開始什麼都用官方預設值,運作下沒有問題,但就是 Key 值都是固定,就來修改一下吧。

同步修改後運作也是正常,正常的測完後,就要來試試【如果伺服端和客戶端密碼不同時會跳出什麼錯誤】。

結果



居然仍能運作!



這就怪了,為什麼兩邊的 KEY 值不同卻能運作無誤?

在經過測試後,它會經過幾個單元:

  • DBXTransport
  • DBXEncryption

DBXEncryption.TPC1Cypher 類別裡有 Cypher / Decypher 加解密函式,就進行測試,才知道每對封包加密傳遞給對方時,KEY 也會在包在其中一同傳給對方,對方再使用該 KEY 進行封包解密,反之亦然。

簡單的說就是:用 KEY 搭配【相同】演算法解密該封包才能夠正確解密。

 

所以要知道正確的演算法才是關鍵,雖然只要是 Delphi 的應用程式就必定可以解開,但以 Delphi 這麼小眾的情形下也算得上一種良好的加密法則。(笑)

See also

沒有留言:

張貼留言