2012-06-21 113 views
0

我深化發展一個web應用程序,我需要加密的JavaScript字符串從服務器(.NET C#)已加密的字符串比較。加密字符串來得到相同的結果

我需要通過這種方式來做到這一點,comprar與客戶端的JavaScript加密的字符串。

我怎麼能以同樣的方式進行加密在客戶端和服務器的串並獲得相同的encripted字符串?

+4

加密是不冪等。你可能需要一個散列。 – SLaks

+0

哈希是不冪等: -/ – Rawling

回答

1

第一件事情,因爲客戶端JavaScript需要訪問加密功能,但不,據推測,解密功能(否則爲什麼加密?),你需要使用非對稱加密算法。像RSA一樣。或者,您可以使用加密哈希,這是一種單向函數。如果你給了我們關於你想要實現的內容的一些上下文,可能會有所幫助,但是從目前的描述來看,我建議你尋找哈希算法的實現,如JavaScript中的SHA-2家族之一 - System.Cryptography命名空間C#已經有了。

如果你正在實施某種形式的安全客戶端的,要小心。如果你是,例如,嘗試比較與服務器上的內容,密碼哈希,你讓在客戶端的比較,惡意用戶可以簡單地附加一個調試器,並繞過你的邏輯....

+0

嗨大衛M.泰恩克你回答。 – Callebe

+0

嗨大衛M.泰克你回答。您的最後一句話正是我想要做的,我意識到riscs,但我的客戶希望這種實現,他們也意識到riscs。我會暫時緩存腳本密碼,以便用戶能夠離線執行相同的功能。當系統進入在線模式時,操作將通過服務器進行驗證。但是如果他錯過了密碼,我需要提醒用戶。你有相同的鏈接或示例代碼?謝謝。 – Callebe

+0

我認爲非對稱加密算法是我的問題的韌皮執行。 – Callebe

0

我將使用Ajax並從服務器端使用RSA encrpytion,這樣您就可以使用相同的代碼。

但是,如果你想真正的JavaScript RSA encrpytion你可以使用這個庫:
Cryptico.js


和服務器端的C#代碼,你可以看看這個網站:
C# RSA Example

+0

非常感謝。 我使用SHA2解決了我的問題。我使用[clsCrypto](http://dotnetrush.blogspot.com.br/2007/04/c-sha-2-cryptography-sha-256-sha-384.html) 對於我使用的JavaScript [jsSHA2](http://anmar.eu.org/projects/jssha2/) – Callebe

相關問題