简单但安全的加密/解密asp到asp.net

时间:2010-04-13 19:48:08

标签: asp.net vb6 asp-classic cryptography encryption

首先发布在这里。

我有一个asp / vb6网络应用程序,它登录用户我要加密用户身份字段并将其传递(查询字符串)到asp.net应用程序然后解密它以进行数据库查找。

我当然是谷歌了,发现rot13,不够安全。我也在MD5 / RC4上发现了一些点击,但没有找到任何加密/解密的好例子。

谢谢,

迈克尔

3 个答案:

答案 0 :(得分:1)

通常承认,您永远不应该解密此类信息,而是将加密与加密进行比较。

例如,MD5可用于这种“陷门”方式。对信息进行编码,然后存储MD5哈希值。当您需要进行身份验证时,请对新信息进行编码并比较哈希值。未加密的信息永远不会公开或可用。

如果这不适用于您的情况,请查看Windows Crypto API,它提供了允许全周期加密/解密的替代方案。

答案 1 :(得分:1)

我同意@Brian - 不要自己做加密,加密很容易,直到你开始进行密钥管理。除非你有非常非常的V.E.R.Y,否则请使用SSL / TLS。有充分理由不这样做。

答案 2 :(得分:0)

这是一个基本的加密示例。你想弄清楚自己的钥匙。我这样做是为了增加一个复杂程度(我希望)。正如Jim指出的那样,您可以使用它来加密新密码,然后存储结果。在创建密码而不是尝试解密此值(这只是反过来)之后,您将加密输入的密码并将其与存储的值进行比较。

'combine these constants to build the encryption key'
Private Const KEY1 = "abcde"
Private Const KEY2 = "fghij"
Private Const KEY3 = "klmno"
Private Const KEY4 = "pqrst"
Private Const KEY5 = "uvwxy"

Private Function Encrypt(ByVal s As String, ByVal EncryptionType As  CAPICOM.CAPICOM_ENCODING_TYPE) As String
   Dim oEN As New CAPICOM.EncryptedData
   Dim intENCType As CAPICOM.CAPICOM_ENCRYPTION_ALGORITHM
   Dim strSecret As String
   Dim intTries As Integer

   On Error GoTo errEncrypt

   intENCType = CAPICOM_ENCRYPTION_ALGORITHM_AES ' try this first and fall back if not supported'

   With oEN
startEncryption:
      .Algorithm = intENCType
      strSecret = KEY2 & KEY5 & KEY4 & KEY1 & KEY3
      .SetSecret strSecret
      strSecret = ""
      .Content = s
      ' the first encryption type needs to be base64 as the .content property'
      ' can loose information if I try to manipulate a binary string'
      .Content = StrReverse(.Encrypt(CAPICOM_ENCODE_BASE64))
      strSecret = KEY1 & KEY4 & KEY3 & KEY2 & KEY5
      .SetSecret strSecret
      strSecret = ""
      Encrypt = .Encrypt(EncryptionType)
   End With

   Set oEN = Nothing

   Exit Function

errEncrypt:
   If Err.Number = -2138568448 Then
      ' if this is the first time the step the encryption back and try again
      If intTries < 1 Then
         intTries = intTries + 1
         intENCType = CAPICOM_ENCRYPTION_ALGORITHM_3DES
         Resume startEncryption
      End If
   End If

   Err.Raise Err.Number, Err.Source & ":Encrypt", Err.Description
   strSecret = ""
   Set oEN = Nothing

End Function