Red de conocimiento informático - Consumibles informáticos - Se requiere código fuente Asp compatible con ftp.

Se requiere código fuente Asp compatible con ftp.

El código ASP+Serv-u implementa FTP.

<! -# incluir archivo = " MD5 . ASP "-& gt;

& lt%

'****************** ********************************

*Autor: awaysrain (cero absoluto)*

*Tiempo de finalización: 2003-10-10

*Entorno de prueba: WIN2000SERVER, SERV-U 4.2-Versión Beta*

'***** ** *******************************************

Dim iniPath, iniFileName, iniStr, tmpStr, n

Dim nombre de usuario, contraseña, tmp

Nombre de usuario = "myfso222 " 'Nombre de usuario

Contraseña = " awaysrain " 'Contraseña

Tmp = "ai " 'Generar aleatoriamente dos letras minúsculas (debe generarse aleatoriamente, lo he omitido aquí).

Contraseña = tmp & ampUCase(md5(contraseña))' La contraseña está cifrada por MD5 utilizando el programa de cifrado md5 de la red móvil. El algoritmo específico consiste en generar aleatoriamente dos letras minúsculas, luego usar su conexión de contraseña para realizar el cifrado MD5 y almacenar la contraseña generada aleatoriamente y el resultado del cifrado MD5 como contraseña. Por ejemplo, para el usuario de awaysrain que aparece a continuación, mi contraseña es awaysrain. Primero, se generan aleatoriamente dos letras minúsculas ai. Utilice mi contraseña awaysrain para conectarse y obtener aiawaysrain. Cifrar aiawaysrain con MD5 da 9118 bfd 94 a 9 ce 9 cf 37 AE 5b aa 947 ed 596. El resultado de cifrar dos letras minúsculas generadas aleatoriamente ai y MD5 es 9118 bfd 94 a 9 ce 937 AE 5b. AA947ED596 conéctese para obtener la contraseña ai 9118 bfd 94 a 9 ce 9 cf 37 AE 5a 947 ed 596.

inpath = " d:\ archivos de programa \ serv-u " ' La ruta del archivo ini.

ini filename = " servudaemon . ini " ' El nombre del archivo ini.

Establecer fso=Servidor. CreateObject("Script.FilesystemObject")

Establezca ServUIni = fso. abrir archivo de texto(iniPath & amp; " \ " & ampiniFileName, 1, false)

iniStr = " "

n = 0

addedUserList = false

p>

Establecer tf = fso. crear archivo de texto(iniPath & amp; " \ " & ampiniFileName & amp "._awaysrain.tmp ", True)

Generar un nuevo archivo INI temporal

No lo hagas. AtendoStream

tmpStr = ServUIni.

Leer línea

if Instr(" siempre llueve | | " & tmpStr, " siempre llueve | | Usuario ")>Entonces 0

Registra el número original de usuarios

n = n+1

Terminará si...

if Instr(" siempre llueve | | " &tmpStr," siempre llueve | |[USUARIO = ")>0, entonces no agregue la lista de usuarios

Agrega el usuario actual a la lista de usuarios.

n = n +1

tf. WriteLine("Usuario" & ampn & amp" = " & ampnombre de usuario y contraseña."|1|0")

addedUserList = true

Terminará si...

tf. Línea de escritura(tmpStr)

Anillo

Selvini. Cerrar

Agregar nueva información de usuario. Para conocer los detalles puede crear un nuevo usuario en SERV University y compararlo con el archivo INI.

tf. WriteLine("[USUARIO = " & nombre de usuario y contraseña." |1]" 'Nombre de usuario

tf. WriteLine(" Contraseña = "&contraseña)' Contraseña

Tf. WriteLine("HomeDir=e:\temp ")' Directorio de inicio

Tf. WriteLine("RelPaths=1 ")' ¿Está el usuario bloqueado en el directorio de inicio?

Tf. writeline(" maxusersloginperi = 1 ")' El número de inicios de sesión simultáneos utilizando la misma IP

Tf. writeline(" speedlimitdown = 102400 ")' Velocidad máxima de descarga. 'Tiempo de espera de inactividad (segundos)

Tf. writeline(" access 1 = E:\ temp | RLP ")'Directorio accesible, como ' Access2=E:\Temp1|RLP '.

tf.Close

-Haga una copia de seguridad del archivo INI original

Establezca f1 = fso ; (iniPath & " \ " & ampiniFileName & amp"._awaysrain.bak ")

Eliminar

<>-Cambie el archivo ini temporal generado al archivo INI oficial

<. p>Establecer f1 = fso. >

f1.Copy(iniPath & amp" \ " & ampiniFileName)

f1.Delete

Establecer fso=None

% & gt

p>

Nota: El código anterior supone que el formato en ServUDaemon.ini tiene solo un dominio y al menos un usuario.

La estructura del archivo ServUDaemon.ini probado es la siguiente:

======================== ===== ========

[Nombre de dominio 1]

Usuario1=222|1|0

Usuario 2 = myfso 111 | 1 | 0

[USER=222|1]

contraseña = hwb 1 ECF 70 cdaf 5 da e2b 981ae 394 eefcdc 0

HomeDir=E :\Temp

RelPaths=1

Tiempo de espera=600

Acceso1=E:\Temp|RLP

[USUARIO = myfso 111 1]

Contraseña= ai 9118 bfd 94 a 9 ce 9 cf 37 AE 5 baa 947 ed 596

HomeDir=e:\temp

RelPaths= 1

Timeout=600

Access1=E:\Temp|RLP

La estructura del archivo generado es la siguiente

=== ========= =======================

[Nombre de dominio 1]

Usuario1=222|1|0

usuario 2 = myfso 111 | 1 0

Usuario3=myfso222|1|0

[USER=222| 1]

contraseña = hwb 1 ECF 70 cdaf 5 da e2b 981ae 394 eefcdc 0

HomeDir=E:\Temp

RelPaths=1

Tiempo de espera=600

Acceso1=E:\Temp|RLP

[USUARIO = myfso 111 1]

Contraseña = ai 9118 bfd 94 a 9 ce 9 cf 37 AE 5 baa 947 ed 596

HomeDir=e:\temp

RelPaths=1

Timeout=600

Acceso1=E:\Temp|RLP

[USER=myfso222|1]

Contraseña= ai 9118 bfd 94 a 9 ce 9 cf 37 AE 5 baa 947 ed 596

HomeDir=e:\ temp

RelPaths=1

Tiempo de espera=600

Acceso1=E:\Temp|RLP

Adjunto a MD5.ASP

p>

================================== =========

& lt%

Constante privada BITS_TO_A_BYTE = 8

Constante privada BYTES_TO_A_WORD = 4

Constante privada BITS_TO_A_WORD = 32

Privada m_lOnBits(30)

Privada m_l2Power(30)

Función privada LShift(lValue, iShiftBits)

Si iShiftBits = 0, entonces

LShift = lValue

Salir de la función

Entonces ElseIf iShiftBits = 31

Si lValue suma 1 , luego

LShift = & ampH80000000

Otros

L

Shift = 0

Finalizar si...

Salir de la función

ElseIf iShiftBits & lt0 o iShiftBits & gt Then 31

Uh. Suma 6

Terminará si...

Si (lValue y m_l2Power(31 - iShiftBits)) Entonces

LShift = ((lValue y m_lon bits (31-(iShiftBits+1)))* m _ L2 power(iShiftBits)) o & ampH80000000

Otro

LShift = ((lValue y m_lon bits(31 -iShiftBits) )* m _ L2 power(iShiftBits))

Terminará si...

Finalizar función

Función privada RShift(lValue, iShiftBits)

Si iShiftBits = 0, entonces

RShift = lValue

Salir de la función

ElseIf iShiftBits = 31

Si el lvalue es & amp, entonces 80000000

RShift = 1

Otros

RShift = 0

Si... terminará

Salir de la función

ElseIf iShiftBits & lt0 o iShiftBits & gtentonces 31

Uh.

Subir 6

Termina si (lvalue y & ampH80000000)

RShift = (RShift or (& amph 40000000 \m _ L2 power(iShiftBits-1)))

Terminará si...

Finalizar función

Función privada RotateLeft(lValue, iShiftBits)

RotateLeft = LShift(lValue, iShiftBits) o RS shift(lValue, (32 - iShiftBits))

Función final

Función privada AddUnsigned(lX, lY)

Dim lX4

Atenuar lY4

Atenuar lX8

Atenuar lY8

Resultado difuso

lX8 = suma lX y ampH80000000

lY8 = lY suma & ampH80000000

lX4 = lX Y & ampH40000000

lY4 = lY Y & ampH40000000

lResultado = (lX Y & ampH3FFFFFFF ) + (lY And & ampH3FFFFFFF)

Si lX4 y lY4, entonces

lResult = lResult Xor & ampH80000000 Bar

lResult = lResult Xor & ampHC0000000 Xor lX8 Xor lY8

Otro

lResult = lResult Xor & ampH40000000 Terminará si...

Otros

lResult = lResult Xor lX8 Xor lY8

Terminará si...

AddUnsigned = lResult

Finalizar función

Función privada md5_F(x, y, z)

md5_F = (x e y) o ((no x y z)

Función final

Función privada md5_G(x, y, z)

md5_G = (x y z) o (y y (no z))

Función final

Función privada md5_H(x, y, z)

md5_H = (x XOR y XOR z)

Finalizar función

Función privada md5_I(x, y, z)

md5_I = (y Xor (x o (no z)))

Finalizar función

Private Sub md5_FF(a, b, c, d, x, s, ac)

a = AddUnsigned(a, add unsigned(add unsigned(MD5_F(b,c,d) , x), ac))

a = RotateLeft(a, s)

a = AddUnsigned(a, b)

Conector final

Sub privado md5_GG(a, b, c, d, x, s, ac)

a = AgregarSin firmar(a, agregar sin firmar(agregar uns

igned(MD5_G(b,c,d),x),ac))

a = RotateLeft(a, s)

a = AddUnsigned(a, b)

Conector final

Private Sub md5_HH(a, b, c, d, x, s, ac)

a = AddUnsigned(a, add unsigned(add unsigned( MD5_H(b,c,d),x),ac))

a = RotateLeft(a, s)

a = AddUnsigned(a, b)

Conector final

Private Sub md5_II(a, b, c, d, x, s, ac)

a = AddUnsigned(a, add unsigned(add unsigned(MD5_I( b,c,d),x),ac))

a = GirarIzquierda(a, s)

a = AgregarSin firmar(a, b)

Conector final

Función privada ConvertToWordArray(sMessage)

Luz tenue

Palabra digital borrosa

Dim lWordArray()

Posición de deposición tenue

Dim lByteCount

Dim lWordCount

Módulo_bits constante = 512

Const CONGRUENT_BITS = 448

lMessageLength = Len(sMessage)

lnnumberofwords =(((lMessageLength+((modulus_bit-congruent_bit)\bit_to_words sección))\(modulo_bits\bits_to_bytes))+ 1) *(modulo_bits\bits_to_words)

ReDim lword array(lnumberoffwords-1)

lBytePosition = 0

lByteCount = 0

Hasta lByteCount & gt= lMessageLength

lWordCount = lByteCount \ BYTES _ A _ A _ WORD

lBytePosition =(lByteCount Mod BYTES _ A _ A _ WORD)* BITS _ A _ A _ BYTE

lword array(lWordCount)= lword array(lWordCount) o LShift(Asc (Mid(sMessage, lByteCount + 1, 1)), lBytePosition)

lByteCount = lByteCount + 1

Anillo

lWordCount = lByteCount \ BYTES _ A _ A _ WORD

lBytePosition =(lByteCount Mod BYTES _ A _ A _ WORD)* BITS _ A _ A _ BYTE

lWordArray(lWordCount)= lWordArray(lWordCount) o l shift (& H80, lBytePosition)

lword array(lnumberoffwords-2) = lshift(lMessageLength, 3)

lword array (número dos

rds-1) = RShift(lMessageLength, 29)

ConvertToWordArray = lWordArray

Función final

Función privada WordToHex (lvalue)

Dim lCount

Dim lCount

Para lCount = 0 a 3

lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) y m_lon BITS(BITS _ TO _ A _ BYTE-1)

WordToHex = WordToHex &right(" 0 "&Hex (1 byte), 2)

Entonces

p>

Finalizar función

Función pública MD5 (SMS)

m_lOnBits(0) = CLng(1)

m_lOnBits(1) = CLng( 3)

m_lOnBits (2) = CLng(7)

m_lOnBits(3) = CLng(15)

m_lOnBits(4) = CLng(31)

m_lOnBits(5 ) = CLng(63)

m_lOnBits(6) = CLng(127)

m_lOnBits(7) = CLng(255)

p>

m _ lon bits(8) = CLng(511)

m_lOnBits(9) = CLng(1023)

m_lOnBits(10) = CLng(2047)

m _ lon bits(11)= CLng(4095)

m _ lon bits(12)= CLng(8191)

m _ lon bits(13 )= CLng(16383 )

m_lOnBits(14) = CLng(32767)

m_lOnBits(15) = CLng(65535)

m _ lon bits( 16)= CLng( 131071)

m _ lon bits(17)= CLng(262143)

m _ lon bits(18)= CLng(524287)

m _ lon bits(19)= CLng(1048575)

m _ lon bits(20)= CLng(2097151)

m _ lon bits(21)= CLng( 4194303)

m_lOnBits(22) = CLng(8388607)

m _ lon bits(23) = CLng(16777215)

m _ lon bits(24 )= CLng(33554431 )

m _ lon bits(25)= CLng(67108863)

m _ lon bits(26)= CLng(134217727)

m_lOnBits(27) = CLng(268435455)

m _ lon bits(28)= CLng(536870911)

m _ lon bits(29)= CLng(1073741823)

p>

m _ lon bits(30)= CLng(2147483647)

m_l2Power(0) = CLng(1)

m_l2Power(1) = CLng(2)

m_l2

Potencia(2) = CLng(4)

m_l2Power(3) = CLng(8)

m_l2Power(4) = CLng(16)

m_l2Power( 5) = CLng(32)

m_l2Power(6) = CLng(64)

m_l2Power(7) = CLng(128)

m_l2Power(8) = CLng(256)

m_l2Potencia(9) = CLng(512)

m _ L2 potencia(10)= CLng(1024)

m _ L2 potencia(11)= CLng(2048)

m_l2Potencia(12) = CLng(4096)

m _ L2 potencia(13)= CLng(8192)

m_L2 potencia(14)= CLng(16384)

m_l2Power(15) = CLng(32768)

m_l2Power(16) = CLng(65536)

m _ Potencia L2(17)= CLng(131072)

m _ Potencia L2(18)= CLng(262144)

m _ Potencia L2(19)= CLng( 524288)

m _ Potencia L2(20)= CLng(1048576)

m _ Potencia L2(21)= CLng(2097152)

m _ Potencia L2( 22)= CLng(4194304)

m_l2Power(23) = CLng(8388608)

m _ L2 potencia(24)= CLng(16777216)

m_l2Power (25) = CLng(33554432)

m _ Potencia L2(26)= CLng(67108864)

m _ Potencia L2(27)= CLng(134217728)

m_l2Potencia(28) = CLng(268435456)

m _ Potencia L2(29)= CLng(536870912)

m _ Potencia L2(30)= CLng( 1073741824)

Tamaño x

Dim k

Dim AA

Dim BB

Dim CC

Dim DD

Dim

Dim b

Dim c

Dimensión d

Const S11 = 7

Constante S12 = 12

Constante S13 = 17

Const S14 = 22

Const S21 = 5

Constante S22 = 9

Constante S23 = 14

Constante S24 = 20

Const S31 = 4

Const S32 = 11

Const S33 = 16

Const S34 = 23

Const S41 = 6

Const S42 = 10

Const S43 = 15

Constante S44 = 21

x = ConvertToWordArray(sMessage)

a = & ampH67452301

b =

& ampHEFCDAB89

c = & ampH98BADCFE

d = & ampH10325476

Para k = 0 al límite inferior (x) paso 16

AA = a

BB = b

CC = c

DD = d

md5_FF a, b, c, d, x ( k + 0), S11 y ampHD76AA478

md5_FF d, a, b, c, x(k + 1), S12 y ampHE8C7B756

md5_FF c, d, a , b, x(k + 2), S13 y ampH242070DB

md5_FF b, c, d, a, x(k + 3), S14 y ampHC 1 BDC ee

md5_FF a, b, c, d, x(k + 4), S11 y ampHF57C0FAF

md5_FF d, a, b, c, x(k + 5), S12 y ampH4787C62A

md5_FF c, d, a, b, x(k + 6), S13 y ampHA8304613

md5_FF b, c, d, a, x(k + 7), S14, & ampHFD469501

md5_FF a, b, c, d, x(k + 8), S11, & ampH698098D8

md5_FF d, a, b, c, x(k + 9 ) , S12 y ampH8B44F7AF

md5_FF c, d, a, b, x(k + 10), S13 y ampHFFFF5BB1

md5_FF b, c, d, a, x (k + 11), S14 y ampH895CD7BE

md5_FF a, b, c, d, x (k + 12), S11 y ampH6B901122

md5_FF d, a, b , c, x(k + 13), S12 y ampHFD987193

md5_FF c, d, a, b, x(k + 14), S13 y ampHA679438E

md5_FF b , c, d, a, x(k + 15), S14 y ampH49B40821

md5_GG a, b, c, d, x(k + 1), S21 y ampHF61E2562

md5_GG d, a, b, c, x(k + 6), S22 y ampHC040B340

md5_GG c, d, a, b, x(k + 11), S23 y ampH265E5A51< / p>

md5_GG b, c, d, a, x(k + 0), S24, & ampHE9B6C7AA

md5_GG a, b, c, d, x(k + 5), S21 . HD62F105D

md5_GG d, a, b, c, x(k + 10), S22 y ampH2441453

md5_GG c, d, a, b, x(k + 15) , S23 y ampHD8A1E681

md5_GG b, c, d, a, x(k + 4), S24 y ampHE7D3FBC8

md5_GG a, b, c, d, x( k+9), S21.

H21E1CDE6

md5_GG d,a,b,c,x(k+14),S22 y ampHC33707D6

md5_GG c,d,a,b,x(k+3) , S23 y ampHF4D50D87

md5_GG b, c, d, a, x(k + 8), S24 y ampH455A14ED

md5_GG a, b, c, d, x( k + 13), S21 y ampHA9E3E905

md5_GG d, a, b, c, x (k + 2), S22 y ampHFCEFA3F8

md5_GG c, d, a, b, x(k + 7), S23 y ampH676F02D9

md5_GG b, c, d, a, x(k + 12), S24 y ampH8D2A4C8A

md5_HH a, b, c, d, x(k + 5), S31. HFFFA3942

md5_HH d, a, b, c, x(k + 8), S32 y ampH8771F681

md5_HH c, d, a, b, x(k + 11) , S33 y ampH6D9D6122

md5_HH b, c, d, a, x(k + 14), S34 y ampHFDE5380C

md5_HH a, b, c, d, x( k + 1), S31, & ampha4a beea 44

md5_HH d, a, b, c, x (k + 4), S32, & ampH4BDECFA9

md5_HH c, d, a, b, x(k + 7), S33 y ampHF6BB4B60

md5_HH b, c, d, a, x(k + 10), S34 y ampHBEBFBC70

md5_HH a, b, c, d, x(k + 13), S31 y ampH289B7EC6

md5_HH d, a, b, c, x(k + 0), S32 y ampHEAA127FA

md5_HH c, d, a, b, x(k + 3), S33 y ampHD4EF3085

md5_HH b, c, d, a, x(k + 6), S34 y ampH4881D05

md5_HH a, b, c, d, x(k + 9), S31. HD9D4D039

md5_HH d,a,b,c,x(k+12),S32, & ampHE6DB99E5

md5_HH c,d,a,b,x(k+15) , S33 y ampH1FA27CF8

md5_HH b, c, d, a, x(k + 2), S34 y ampHC4AC5665

md5_II a, b, c, d, x( k+0), S41.

HF4292244

md5_II d, a, b, c, x(k + 7), S42 y ampH432AFF97

md5_II c, d, a, b, x(k + 14) , S43 y ampHAB9423A7

md5_II b, c, d, a, x(k + 5), S44 y ampHFC93A039

md5_II a, b, c, d, x( k + 12), S41 y ampH655B59C3

md5_II d, a, b, c, x(k + 3), S42 y ampH8F0CCC92

md5_II c, d, a, b, x(k + 10), S43 y ampHFFEFF47D

md5_II b, c, d, a, x(k + 1), S44 y ampH85845DD1

md5_II a, b, c, d, x(k + 8), S41. H6FA87E4F

md5_II d, a, b, c, x(k + 15), S42 y ampHFE2CE6E0

md5_II c, d, a, b, x(k + 6) , S43 y ampHA3014314

md5_II b, c, d, a, x(k + 13), S44 y ampH4E0811A1

md5_II a, b, c, d, x( k+4), S41. HF7537E82

md5_II d, a, b, c, x(k + 11), S42 y ampHBD3AF235

md5_II c, d, a, b, x(k + 2) , S43 y ampH2AD7D2BB

md5_II b, c, d, a, x(k + 9), S44 y ampHEB86D391

a = AddUnsigned(a,AA)

b = AddUnsigned(b, BB)

c = AddUnsigned(c, CC)

d = AddUnsigned(d, DD)

Entonces

MD5 = LCase(WordToHex(a)&WordToHex(b)&WordToHex(c)&&WordToHex(d))

MD5 = LCase(WordToHex(b)amp; 'Recorté para que se ajuste a una contraseña de base de datos de 16 bytes :D

Finalizar función

% & gt