Encriptar y desencriptar texto con archivo clave con ASP clásico

Código ASP clásico

Aquí se presenta un código nuevo para crear una nueva clave cada vez que se ejecuta el código. Básicamente se escribe un nuevo archivo de clave acada vez que se ejecuta la página. El archivo 'clave' se compone de un nombre de archivo generado aleatoriamente, y los datos clave se almacena en el interior de la misma. La clave de nueva creación se utiliza para cifrar / descifrar los datos de la cadena sobre la marcha. Si no se cifrar / descifrar al vuelo, que se desea almacenar los datos cifrados y la ubicación del archivo de clave que cifra los datos. Opcionalmente, puede almacenar todos estos datos en una base de datos segura, en lugar de escribir archivos de texto. Puede que no desee la información clave y los datos cifrados almacenados en el mismo lugar por razones de seguridad. Eso depende de usted.

El código para cifrar el vuelo se muestra a continuación:

  <%
Dim g_KeyLocation, g_Key

g_KeyLocation = "C:\crypt\" & BuildFileName() & ".txt"

Const g_CryptThis = "Encripta cadena de texto ahora!"
Const g_KeyLen = 512

On Error Resume Next

strFullKey = KeyGeN(g_KeyLen)
Call WriteKeyToFile(strFullKey)

if Err <> 0 Then
   Response.Write "ERROR GENERATING KEY" & "<P>"
   Response.Write Err.Number & "<BR>"
   Response.Write Err.Description & "<BR>"  
Else
   Response.Write "KEY SUCCESSFULLY GENERATED"
End If

Sub WriteKeyToFile(MyKeyString)
   Dim keyFile, fso, strFileName
   strFileName = g_KeyLocation
   set fso = Server.CreateObject("scripting.FileSystemObject")
   set keyFile = fso.CreateTextFile(strFileName, true)
   keyFile.WriteLine(MyKeyString)
   keyFile.Close
End Sub

Function KeyGeN(iKeyLength)
Dim k, iCount, strMyKey, lowerbound, upperbound
   lowerbound = 35 ' 35
   upperbound = 96 ' 96
   Randomize      ' Initialize random-number generator.
   for i = 1 to iKeyLength
      s = 255
      k = Int(((upperbound - lowerbound) + 1) * Rnd + lowerbound)
      strMyKey =  strMyKey & Chr(k) & ""
   next
   KeyGeN = strMyKey
End Function

Function BuildFileName()
Dim k, i,  strFileName, lowerbound, upperbound
   lowerbound = 97
   upperbound = 122
   Randomize
   for i = 1 to 24
      k = Int(((upperbound - lowerbound) + 1) * Rnd + lowerbound)
      strFileName =  strFileName & Chr(k) & ""
   next
   BuildFileName = strFileName
End Function

g_Key = mid(ReadKeyFromFile(g_KeyLocation),1,Len(g_CryptThis))

Response.Write "<p>ORIGINAL STRING: " & g_CryptThis & _
                   "<p>"
Response.Write "<p>KEY VALUE: " & g_Key  & "<p>"
Response.Write "<p>ENCRYPTED CYPHERTEXT: " & _
                   EnCrypt(g_CryptThis) & "<p>"
Response.Write "<p>DECRYPTED CYPHERTEXT: " & _
                   DeCrypt(EnCrypt(g_CryptThis)) & "<p>"

Function EnCrypt(strCryptThis)
   Dim strChar, iKeyChar, iStringChar, i
   for i = 1 to Len(strCryptThis)
      iKeyChar = Asc(mid(g_Key,i,1))
      iStringChar = Asc(mid(strCryptThis,i,1))
      iCryptChar = iKeyChar Xor iStringChar
      strEncrypted =  strEncrypted & Chr(iCryptChar)
   next
   EnCrypt = strEncrypted
End Function

Function DeCrypt(strEncrypted)
Dim strChar, iKeyChar, iStringChar, i
   for i = 1 to Len(strEncrypted)
      iKeyChar = (Asc(mid(g_Key,i,1)))
      iStringChar = Asc(mid(strEncrypted,i,1))
      iDeCryptChar = iKeyChar Xor iStringChar
      strDecrypted =  strDecrypted & Chr(iDeCryptChar)
   next
   DeCrypt = strDecrypted
End Function

Function ReadKeyFromFile(strFileName)
   Dim keyFile, fso, f
   set fso = Server.CreateObject("Scripting.FileSystemObject")
   set f = fso.GetFile(strFileName)
   set ts = f.OpenAsTextStream(1, -2)

   Do While not ts.AtEndOfStream
     keyFile = keyFile & ts.ReadLine
   Loop

   ReadKeyFromFile =  keyFile
End Function
%>

tags: algoritmo para encriptar y desencriptar, encriptar desencriptar, encriptar y desencriptar, cadenas en asp, asp cadenas, encriptar textos, encriptar asp, textos encriptados, encriptar contrseña c#

En esta sección encontrarás una mezcla de códigos recopilados de fuentes públicas de Internet y otros creados por ASP TEAM. Compartimos recursos útiles de buena fe para formar una base de conocimiento en el desarrollo de aplicaciones en ASP Clásico.