2009-08-11 85 views
2

我已經得到了一個我想加密的字符串,我想這樣做的方式是「經典」ASP應用程序和ASP.NET 2.0應用程序可以解密它。什麼是最好的方式來做到這一點?在「經典」ASP和ASP.NET 2.0中加密/解密數據

我一直在網上尋找不同的解決方案。我已經看過使用DPAPI,但它是每臺機器,所以沒有了。在每臺服務器上加密的工作太多。我也考慮過對web.config中的值進行加密,但「經典」的ASP將無法讀取它。

有沒有其他想法呢?

在此先感謝!

+0

我不得不嘗試做同樣的事情;儘管我專門尋找了一個經典的asp庫,可以解密由.NET中包含的Rijndael庫加密的文本。最後,我們能夠在asp.net中重寫頁面:-S – STW 2009-08-11 19:10:30

回答

1

您可以嘗試在經典的asp頁面中以activex dll的形式使用Chilcat Crypt組件,並使用.NET System.Security.Cryptography庫對字符串進行解密。在這兩種情況下,您都可以使用AES/Rinjdael或其他加密算法。

+0

您將在哪裏存儲密鑰? – 2009-08-11 19:31:10

+0

爲了向您提供更好的解決方案,我需要了解更多關於應用程序的信息。例如,有不同的服務器?或者只有兩個應用程序在同一臺服務器?爲什麼不使用簡單的文件來存儲密鑰?或更好:爲什麼不使用來自相對變量種子的計算密鑰而不需要存儲它? – backslash17 2009-08-11 20:34:43

2

使用加密API的舊標準COM dll a.k.a. capicom.dll是你可以使用的東西。這不是我曾經使用過的最困難的事情,但它有很好的文檔記錄,並且已經安裝在99%的微軟框中。您可以在http://msdn.microsoft.com/en-us/library/ms995332.aspx找到相關信息。如果你用classic asp編寫所有東西,那麼在.net中移植它並使用PIvoke api來使用相同的邏輯應該相當容易。

0

我在我們的網站上遇到了這個問題,該問題使用了VB.NET的ASP &。此外,內部實用程序是用C#,VB6 & VB.NET編寫的。所有程序都需要能夠交換加密數據。

爲了解決這個問題,我寫了一個VB6 &我轉換爲.NET的VBScript加密程序。它允許我在各個平臺上擁有相同的數據。我選擇的加密&哈希是RC4和MD5。這兩個功能都有很多增強功能,例如MD5是一個鹽醃版本,RC4包含一個CRC校驗和一個使用多個密鑰進行雙重加密的選項。

MD5和RC4的基本代碼很容易獲得,它們都可以輕鬆轉換。

1

您是否考慮過創建一個ASP.NET Web服務來爲您執行加密?然後,您可以通過經典ASP應用程序通過SSL調用Web服務,然後使用ASP.NET應用程序中的相同後端庫進行解密。