有誰知道使用VB6加密和解密字符串以確保敏感數據安全的好方法嗎?加密和解密字符串
另外,有沒有一種可以在VB6和.NET之間共享的加密方法? 示例:
使用VB6應用程序將加密字符串寫入數據庫,但如果可能的話,還需要使用.net框架在c#.net應用程序中讀取解密值。
謝謝!
有誰知道使用VB6加密和解密字符串以確保敏感數據安全的好方法嗎?加密和解密字符串
另外,有沒有一種可以在VB6和.NET之間共享的加密方法? 示例:
使用VB6應用程序將加密字符串寫入數據庫,但如果可能的話,還需要使用.net框架在c#.net應用程序中讀取解密值。
謝謝!
你看過System.Security.Cryptography嗎?
http://msdn.microsoft.com/en-us/library/system.security.cryptography.aspx
我會看着AesCryptoServiceProvider。
+1。我建議編寫一個將.Net加密文件公開給VB6的C#組件。像這樣http://msdn.microsoft.com/en-us/library/aa719105(VS.71).aspx – MarkJ 2010-06-02 20:40:30
我接受基於從MarkJ評論這個答案。構建一個可以被COM封裝並通過VB6使用的.net組件,可確保兩個應用程序使用相同的代碼。感謝大家的所有意見。 – dretzlaff17 2010-06-04 13:30:27
呀,symmetric encryption算法,如AES是相當標準的所以只要你使用相同的密鑰對encryption和decryption應該是絕對沒有問題的。
您可以使用Transact-SQL的加密函數來處理數據庫中的安全性,而不是在應用程序端加密/解密工作。畢竟,這兩個應用程序都將連接到同一個數據庫。
這聽起來是最簡單的,儘管您需要評估DBA是否能夠解密密碼,並且這是否有風險。有時,您將加密放在應用程序而不是數據庫中,以分離DBA訪問的信息。 – Justin 2010-06-02 20:17:51
您還需要確保數據庫驅動程序加密流量(或使用專用接口)。 – Justin 2010-06-02 20:18:37
這是一個好主意。不幸的是,我使用的數據庫版本不支持T-SQL中的加密功能。 – dretzlaff17 2010-06-03 14:35:29
我的第一個想法是使用內置於Microsoft操作系統的內置CryptoAPI。這會給你的VB6和C#開發平臺之間的共同點。
http://en.wikipedia.org/wiki/Cryptographic_API
一些快速&骯髒的樣本代碼在這裏:http://www.freevbcode.com/ShowCode.Asp?ID=804
這是解釋如何做到這一點在C#中的許多站點之一:http://blogs.msdn.com/b/alejacma/archive/2007/11/23/p-invoking-cryptoapi-in-net-c-version.aspx
Eeek! -1但沒有評論...爲什麼討厭? :) – code4life 2010-06-03 03:18:30
感謝您的意見。我正在投票支持你提供信息作爲我的問題的可能解決方案。我不確定爲什麼有人會在沒有任何推理的情況下投票。 – dretzlaff17 2010-06-04 14:24:33
你可以嘗試VBCorLib它支持與在.NET中找到的相同的加密類。 VBCorLib中的加密類提供了與.NET類幾乎相同的API,因此代碼與在兩個平臺之間執行加密/解密非常相似。
你的問題有根本性的缺陷reasonsing:**加密並不能保證敏感數據是安全的**。加密確保敏感數據被**加密**。安全的數據和加密的數據不是相同的東西,只有鎖定的汽車纔是安全的汽車。鎖定的汽車每天都會被偷,被砸碎,炸燬或高速公路上被砸。爲了確保數據的安全性*首先要做的是*計算出對用戶的所有威脅*,然後逐一減輕它們;機率非常好,只有少數威脅會被加密緩解。 – 2010-06-03 00:09:13
「鎖定的汽車每天都在高速公路上被砸...」跆拳道?@!這個人只是在這裏要求AES :-)) – wqw 2010-06-03 16:22:10
@wqw:我的觀點是,鎖定一輛車並不能防止它受到多種形式的意外或故意損壞。 *使用加密鎖定數據並不能防止意外或故意損壞*。如果目標是保持用戶的數據*安全*,那麼你必須陳述一個*威脅*,以防止它受到威脅。 *大多數威脅都沒有通過加密來緩解;如果實際的威脅是其中之一,那麼加密會使情況變得更糟*,而不是更好*。 – 2010-06-03 22:54:07