2012-05-23 114 views
3

我想在我的VB6的代碼混淆密碼,這樣,它甚至無法通過反編譯顯露出來。如何隱藏代碼中的硬編碼密碼?

這可能嗎?

+1

暗紋?是。隱藏?編號 –

+2

通常的做法是根本不存儲密碼(尤其是沒有硬編碼到編譯的可執行文件中)。使用Windows集成安全性並使受保護的資源可以被某個用戶帳戶或組訪問。在該帳戶下運行該可執行文件。 – Tomalak

+1

好問題。你想如何存儲密碼? DIM變量並將其存儲在那裏?或者可能是一個常數與密碼在裏面?這些內存是否可以被黑客攻擊或反編譯? 我至少會嘗試對密碼進行散列,以免它完全暴露。除非你需要其他應用程序或其他東西的原始密碼。然後一個哈希將不起作用。 – Martin

回答

2

如果程序不僅可以訪問它以明文,那麼它可能以某種方式進行檢索。你最好以其他方式獲得安全。如何做到這一點真的取決於你的具體應用。你是否需要在應用程序中存儲密碼?你可以簡單地存儲一個預先計算的散列並與之進行比較嗎?

+0

如何檢索?並且可以檢索任何代碼?還是隻有當它存儲在內存中? – Martin

+0

@Martin如果用戶可以讀取可執行文件,則可以讀取任何硬編碼的值。 – user1937198

+0

什麼是增加一個硬編碼的哈希當有人可以去二進制和簡單地通過改變哈希破解你的應用程序呢?如果您確實需要進行身份驗證,那麼您需要創建某種「客戶端服務器」體系結構。 –

0

這真的取決於你將使用什麼密碼。如果你只是需要檢查它,你可以簡單地使用一個非常強大的密碼並對其進行散列(即使他們使用某種類型的彩虹表,它也很難找到它)。

但覺得這樣,如果有人願意編譯你的代碼,他們可以只需更改該密碼一個又一個簡單的,他們知道散列完美破解你的應用程序。

另一方面,如果您嘗試存儲密碼以便您可以反轉它(DB密碼?)並使用它,那麼我會說您要採用錯誤的架構,並且您無法安全地執行任何操作讓惡意用戶找到你的密碼。您應該創建一個「普通用戶」和客戶端應用程序無法訪問的服務器端應用程序,該應用程序將向您的服務器端應用程序發送請求。