2011-12-28 75 views
1

我使用IP,USERID,DATETIME在我的Web App中創建安全代碼。我想知道如何創建安全代碼的更多信息,e.g:如何爲網絡創建識別碼或密鑰?

string str="192.168.0.1,myid,20121227,12345"; 

然後我加密的字符串:

string strC=encrypt(str); 

然後串strC是我的安全碼。

回答

0

一般來說,你用的好solution.sometime我們需要了解我們的主要的內容,所以你沒有使用加密方法(因爲每個加密方法的解密方法) 有時我們只需要一鍵把它分配給我們的用戶,所以在這些情況下,我們可以使用單向算法,如哈希。最後我說你使用了一種很好的方式,但我有另一個解決方案的提議(也許你已經記住了這個提議)。

改變你加密/解密的方法是這樣的:

private string Encrypt (string str) 
{ 

//Encryption str 
//... 


return HttpUtility.HtmlEncode(EncryptedStr); 

} 


private string Decrypt (string str) 
{ 

str = HttpUtility.HtmlDecode(str); 

//Decryption str 
//... 

return DecryptedStr; 

} 

這將提高你的解決方案,並通過這些方法,你可以在查詢字符串變量

方面使用了密鑰,阿里

+0

3KS!我想知道你的解決方案在你的應用程序。 – solan 2011-12-28 06:21:05

+0

遺憾的是,我的回覆意外地被張貼出來了。我把它填好並再次放入 – 2011-12-28 06:23:00

0

如果,通過「安全代碼」,你的意思是「認證標識符」,那麼你甚至不需要加密任何東西;你真正想要的是Message Authentication Code。這是一個完整性保存機制,告訴你「用戶呈現的標識符是我創建的標識符」。

如果通過「安全碼」,您確實是指「會話密鑰」,那麼就不需要加密:獲取有關會話的一些信息並將其與大量隨機數據(例如,來自java.security。 SecureRandom)使用密碼散列函數。這將創建一個既獨特又不可測的加密密鑰。更好的是像Diffie-Hellman這樣的適當的密鑰交換算法,除非你需要擔心中間人攻擊,在這種情況下,你需要某種形式的authenticated key exchange

那麼...你是什麼意思的「安全碼」?