Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Codigo sin utilidad (https://www.clubdelphi.com/foros/showthread.php?t=41240)

Caral 10-09-2007 17:46:08

Hola Seoane
Ahora, esta contraseña se genera y guarda en algún sitio?
Por que si genera una contraseña cada vez de que serviría, verdad.
No he bajado el zip todavía, quería preguntarlo primero.
Saludos

seoane 10-09-2007 17:57:02

Cita:

Empezado por Caral (Mensaje 229728)
Ahora, esta contraseña se genera y guarda en algún sitio?

No, no se guarda en ningun sitio y precisamente esa es lo mejor de todo :D

Cita:

Empezado por Caral (Mensaje 229728)
Por que si genera una contraseña cada vez de que serviría, verdad.

Porque para una misma etiqueta y clave, siempre genera la misma contraseña.

Creo que no explique bien el funcionamiento del programa. Voy a probar de nuevo. Imagínate que encuentras un sitio nuevo, por ejemplo www.fllickr.com y que quieres darte de alta en el sitio, cuando te pregunte que contraseña quieres usar abres este programa y en "sitio" colocas "www.fllickr.com" y en "Clave" pones la clave que utilizas para generar todas tus contraseñas, por ejemplo "secreto". La clave generada sera "b3QKNeYw" y esa sera la que debes indicar cuando te des de alta en el sitio.

Ahora puedes cerrar el programa y la contraseña no se ha guardado en ninguna parte. Pero imagínate que un mes después necesitas la clave, solo tienes que abrir el programa colocar los valores correctos de "Sitio" y "Clave" y se volverá a generar exactamente la misma contraseña "b3QKNeYw".

¿Me explique bien ahora? :)

Caral 10-09-2007 18:08:17

Hola
Perfecto.
Pero me queda una duda.
Por que en codigo sin utilidad:), me parece todo lo contrario.
La verdad yo movería mucho del codigo que tienes aqui a un nuevo hilo, codigo con mucha utilidad, y como nota a ver que lo supera.:D
Gracias Seoane, esta genial.
Saludos

seoane 10-09-2007 18:17:12

Cita:

Empezado por dec (Mensaje 229726)
Y a veces he pensado en hacer algo con Delphi, algún programilla, porque, todos los que he visto por ahí... chico, no sé, unos por una cosa, otros por otra... son programas estupendos, pero, no me quedan a gusto.

Lo mismo me pasa a mi, confiar todas mis contraseñas a un programa con el código cerrado no me convence, no sabes si es seguro, no sabes si en un futuro el programa va a dejar de funcionar dejándote sin claves, etc ... Este programa, sin embargo utiliza un algoritmo muy sencillo, que puede ser reproducido en multitud de lenguajes, desde php hasta freepascal.

Y que mas decir, porque no te animas y haces algo bonito seguro que se te ocurre algo mas que añadirle :)

Gabo 10-09-2007 18:17:36

A saber lo que entenderá seoane por "codigo con utilidad" entonces... :eek::eek::eek:

Por lo menos esto último, además de tener utilidad, sirve perfectamente para que los que no nos hemos metido nunca con estos algoritmos de encriptación lo podamos hacer y comprender...

Felicitaciones!!!! Este hilo está genial...:)

Caral 10-09-2007 18:23:15

Hola
Me da un error:
XPManifest1.
No tiene el correspondiente componente.
Pregunto:
Necesita un componente XPMan.
Saludos

seoane 10-09-2007 18:27:57

Cita:

Empezado por Caral (Mensaje 229743)
Pregunto:
Necesita un componente XPMan.

No, solo se lo puse para que fuera mas bonito :o

Quitalo, y la unit XPMan de las uses tambien.

Caral 10-09-2007 18:34:38

Hola
Gracias, me lo imaginaba, solo que no lo queria romper.
Por cierto, no seria bueno un combobox en el que se guarden las direcciones? o algo asi.
Asi no se tienen que poner cada vez, es solo una idea, esta muy bien ya lo probé.
Saludos

dec 10-09-2007 18:34:39

Hola,

Cita:

Empezado por Domingo
Lo mismo me pasa a mi, confiar todas mis contraseñas a un programa con el código cerrado no me convence, no sabes si es seguro, no sabes si en un futuro el programa va a dejar de funcionar dejándote sin claves, etc ... Este programa, sin embargo utiliza un algoritmo muy sencillo, que puede ser reproducido en multitud de lenguajes, desde php hasta freepascal.

Si el caso es que hay algún programa libre para ese menester, pero, a mí lo que me apabulla es la cantidad de opciones que suele haber. Se puede generar una contraseña de mil formas distintas, por ejemplo. En general los veo "liosos", pero, es sólo mi opinión.

Cita:

Empezado por Domingo
Y que mas decir, porque no te animas y haces algo bonito seguro que se te ocurre algo mas que añadirle

Porque las cosas se complican... se lían... se retuercen... se dan de sí... sabes cuándo empiezas pero no cuándo acabas... :D :D

Pero quién sabe... desde luego tu "sistema" sería ya algo a tener en cuenta.

seoane 10-09-2007 18:37:30

Cita:

Empezado por dec (Mensaje 229753)
Porque las cosas se complican... se lían... se retuercen... se dan de sí... sabes cuándo empiezas pero no cuándo acabas... :D :D

Ya veo que eres como yo, te gusta empezar las cosas pero no acabarlas :p :D

dec 10-09-2007 18:45:11

Hola,

Bueno... a mí me gusta empezar y acabar, lo que pasa es que las cosas son como son... esto de los programas y tal... no se sabe nunca dónde acaban. Siempre pueden mejorarse (y empeorarse) más. Pero, también es verdad que necesito de motivación, es decir, que lo que se me hace complicado es precisamente empezar algo... una vez metidos en harina ya es otro cantar. :)

seoane 10-09-2007 19:15:11

Cita:

Empezado por dec (Mensaje 229758)
Bueno... a mí me gusta empezar y acabar, lo que pasa es que las cosas son como son... esto de los programas y tal... no se sabe nunca dónde acaban.

Tampoco quería decir que dejaras todo a medias :p :D Es verdad que al final los detalles finales pueden alargarse indefinidamente, y cuando crees que ya lo tienes se te ocurre algo mejor ... en fin, que la cosa nunca acaba.

Y como comentaba antes, lo bueno de usar un algoritmo sencillo es que puede portarse fácilmente. Por ejemplo a freepascal.
Código Delphi [-]
program passhash;

uses Sysutils, md5;

function PassGen(Str: String): String;
const
  Alfa = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var
  i: Integer;
begin
  PassGen:= '';
  Str:= MD5Print(MD5String(Str));
  for i:= 0 to (Length(Str) div 4) - 1 do
    PassGen:= PassGen +
      Alfa[(StrToInt('$'+Copy(Str,(i*4)+1,4)) mod Length(Alfa))+1];
end;

var
  i: Integer;
  Str: String;
begin
  Str:= '';
  for i:= 1 to ParamCount do
    Str:= Str + ParamStr(i);
  Writeln('Hash: ' + PassGen(Str));
end.

Código:

./passhash www.clubdelphi.com secreto
Hash: EEOWyCST


Casimiro Notevi 10-09-2007 20:28:13

Me parece estupendo este "código sin utilidad" :D, aunque le veo un pequeño inconveniente: Estoy de vacaciones en Australia (es un suponer), me llego a un ciber y voy a ver qué hay de nuevo por clubdelphi: ¿y cuál era mi password?, no tengo el programa para generar la clave :eek:.

El otro programita que pusiste, ftpup, creo que es más funcional para ese caso, no sé, quizás se complementen... o quizás no me he enterado bien del funcionamiento :o

seoane 10-09-2007 20:34:17

Cita:

Empezado por Casimiro Notevi (Mensaje 229794)
El otro programita que pusiste, ftpup, creo que es más funcional para ese caso, no sé, quizás se complementen... o quizás no me he enterado bien del funcionamiento :o

Ahora que no nos oye nadie ;) te puedo decir que yo uso el ftpup para guardar mis contraseñas. Pero este también sirve, solo tienes que "colgar" el programa en la red (una web, un ftp, tu correo) y cuando lo necesites descargarlo y usarlo. Como las contraseñas no se guardan en ningún sitio, el programa es todo lo que necesitas.

¿Probaste el ftpup? Ahora no hay excusa, todos tenemos un ftp. Y tu bien sabes lo importante que es cifrar los documentos privados de un ftp ;)

dec 10-09-2007 20:40:46

Hola,

La verdad es que es interesante. Sobre todo lo de no tener necesidad de guardar las contraseñas. Si no me equivoco uno tendría que memorizar la contraseña "general" y luego digamos que hacerse una especie de "guía de estilo" para los nombres de los sitios Web.

Por ejemplo, que nunca pondremos el protocolo de la URL, ni las "www.", sino "clubdelphi.com", "google.com", etc. O incluso el nombre del sitio solamente, sin el ".com", ".net", etc. Hum... Lo cierto es que está interesante el asunto Domingo. :)

Claro que, por otro lado, alguien puede usar el programa y, descubriendo una sola contraseña (la "general") tendría acceso a todas las otras "contraseñas", ¿verdad? Sí; ya sé que eso nunca va a pasar... :D :D

Y ya puestos a ser un puñetero de verdad, ¿qué ocurre si queremos cambiar la contraseña "general"? Porque parece ser una buena práctica, y, si hacemos esto, ¿no tocaría cambiar todas las otras contraseñas? Ains... :D :D :D

seoane 10-09-2007 20:47:50

Cita:

Empezado por dec (Mensaje 229801)
Claro que, por otro lado, alguien puede usar el programa y, descubriendo una sola contraseña (la "general") tendría acceso a todas las otras "contraseñas", ¿verdad? Sí; ya sé que eso nunca va a pasar... :D :D

Pero si usamos como clave maestra esto:
Código:

En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor.
dudo mucho que te la pillen. :D

Pero veo que por fin has entendido el concepto, y hasta creo que lo has explicado mucho mejor que yo :p

dec 10-09-2007 20:49:52

Hola,

Sí; puedes usar una contraseña "general" realmente "fuerte". Sin embargo, por un lado no es preciso guardas las contraseñas (algo maravilloso), pero, por otro lado, las contraseñas se guardan (¿cómorrr?) en los sitios Web en que nos registramos...

Pero, claro, a lo mejor es que yo quiero "el milagro de Lourdes" y esto ya es demasiado. :D :D

PD. Bueno. Está claro que no existe "la solución". Existe soluciones, y la que has planteado me sigue pareciendo curiosa. :)

seoane 10-09-2007 20:53:09

Cita:

Empezado por dec (Mensaje 229807)
Sí; puedes usar una contraseña "general" realmente "fuerte". Sin embargo, por un lado no es preciso guardas las contraseñas (algo maravilloso), pero, por otro lado, las contraseñas se guardan (¿cómorrr?) en los sitios Web en que nos registramos...

:confused: Confundido me dejas, por supuesto que el sitio donde nos registramos va a conocer nuestra contraseña. Pero vamos, con este y con cualquier programa presente y futuro. Otra cosa es como las gestionen ellos internamente, pero eso en principio no nos importa.

dec 10-09-2007 20:58:56

Hola,

Cita:

Empezado por seoane
Confundido me dejas, por supuesto que el sitio donde nos registramos va a conocer nuestra contraseña. Pero vamos, con este y con cualquier programa presente y futuro. Otra cosa es como las gestionen ellos internamente, pero eso en principio no nos importa.

No; no iba yo tanto porque los sitios conocieran nuestras contraseñas (de hecho la mayoría tampoco, porque no suelen guardarse en claro en la base de datos); yo iba más bien por el asunto de que al cambiar la clave "general" las contraseñas que se generen ya no coincidirán con las que había en los distintos sitios Web.

Pero, claro, como he dicho arriba... hay cosas inevitables, y sigo viendo una buena idea el planteamiento que has dado al asunto Domingo. Mucho mejor que guardar una contraseña para cada sitio... sin ningún patrón ni nada por el estilo... de modo que sí o sí tengas que o bien guardar las contraseñas o bien usar un programa que las guarde.

Con tu solución no hay que guardar contraseñas y eso de por sí ya es algo muy curioso. Ya lo he dicho. :)

dec 10-09-2007 22:49:30

Hola,

Te digo yo que... :)

seoane 10-09-2007 23:00:03

Cita:

Empezado por dec (Mensaje 229848)

Se te convence fácil :D :D :D

Por cierto voy a tener que conseguirme uno de esos archivos de licencia, para incluirlos en mis programas, que quedan muy profesionales ;)

dec 10-09-2007 23:02:45

Hola,

Oyes, que acabo de actualizar el susodicho... na, una tontería, pero, bueno.

PD. http://www.gnu.org/licenses/ :)

dec 10-09-2007 23:08:55

Hola,

Siento repetirme... pero acabo de hacer una segunda actualización, y creo que definitiva, puesto que toca el algoritmo usado para generar la contraseña, de modo que ahora genera unos cuantos caracteres más. Me ha parecido oportuno, y además, yo me lo guiso, yo me lo como, oiga. :D :D :D :D

seoane 10-09-2007 23:11:07

Caramba dec !!! tardas en arrancar, pero una vez que te pones hasta sacas actualizaciones :eek:

dec 10-09-2007 23:12:20

Hola,

Je, je, je... Pse... :D :D :D :D :D :D

dec 11-09-2007 00:07:37

Hola,

Yo y mis actualizaciones... Entre otros cambios ahora se encuentra una "feature" (je, je, je) oculta, por decirlo así. No será buena idea usarla siempre, pero, puede ser útil, me parece. Es una bobada. O no. Ahora cuando se inicia el programa este comprueba si existe un archivo "gen.dat" en su directorio. Si es así, simplemente, tomará su contenido como la contraseña "general", de modo que no habrá que escribirla. :)

Jo, jo, jo, jo... :)

Caral 11-09-2007 01:11:49

Hola
Yo solo puedo decir.
Impresionante.
Saludos

dec 11-09-2007 01:18:10

Hola,

Pues yo le he encontrado una vuelta al asunto, y es que, generalmente, además de una contraseña, para registrarnos en un sitio usamos también nombres de usuario (nótese que uso el plural) y si se me apura direcciones de correo electrónico.

Antes de lo primero se me ha ocurrido esto segundo y como solución he pensado que ya que usamos una clave para los sitios Web (por ejemplo, clubdelphi.com) también podríamos usar una clave... un poco más larga: clubdelphi.com-correo@correo.com

Pero ya también se junta el nombre de usuario... y aquí me quedo un poco parado.

Casimiro Notevi 11-09-2007 09:04:34

Cita:

Empezado por seoane (Mensaje 229798)
[..]¿Probaste el ftpup? Ahora no hay excusa, todos tenemos un ftp. Y tu bien sabes lo importante que es cifrar los documentos privados de un ftp ;)

Sí, sí que lo he probado, es estupendo, el problema es que últimamente no puedo hacer mucho en casa porque se me estropeó el monitor, pedí otro y cuando ha llegado resulta que está defectuoso, ahora lo tengo que devolver y esperar a que me envíen otro nuevo :mad:

seoane 11-09-2007 12:00:19

Cita:

Empezado por Casimiro Notevi (Mensaje 229934)
Sí, sí que lo he probado, es estupendo, el problema es que últimamente no puedo hacer mucho en casa porque se me estropeó el monitor, pedí otro y cuando ha llegado resulta que está defectuoso, ahora lo tengo que devolver y esperar a que me envíen otro nuevo :mad:

Y no sera que es un complot de todos los que te rodean para que uses menos el ordenador, en cuanto te descuidas te echan zumo de piña al monitor :p :D

Te cuento que, en la ultima versión, tienes la posibilidad de introducir la contraseña sin que se vea por pantalla en vez de introducirla por la linea de comandos. Son todas las mejoras que se me ocurren, y como nadie sugiera nada ... :)

Casimiro Notevi 11-09-2007 12:41:00

Cita:

Empezado por seoane (Mensaje 229950)
Y no sera que es un complot de todos los que te rodean para que uses menos el ordenador, en cuanto te descuidas te echan zumo de piña al monitor :p :D

Pues no sé qué contestar, la verdad es que estoy teniendo mala suerte con este asunto, ya estoy cansado y ahora otra vez las llamadas telefónicas, reclamaciones, esperas, vueltas a llamar, en fin, lo típico con los "informales" vendedores informáticos :D


Cita:

Empezado por seoane (Mensaje 229950)
Te cuento que, en la ultima versión, tienes la posibilidad de introducir la contraseña sin que se vea por pantalla en vez de introducirla por la linea de comandos. Son todas las mejoras que se me ocurren, y como nadie sugiera nada ... :)

Pues esa versión todavía no la he visto/probado, ¿cómo lo haces?, ¿guardas la clave en un ficherito encriptado?. ¿Cuál es el enlace a la misma?

seoane 11-09-2007 13:11:08

Cita:

Empezado por Casimiro Notevi (Mensaje 229957)
Pues esa versión todavía no la he visto/probado, ¿cómo lo haces?, ¿guardas la clave en un ficherito encriptado?. ¿Cuál es el enlace a la misma?

Si el password del ftp o la clave de cifrado no se introducen en la linea de comandos, el programa le pide al usuario que los introduzca por teclado, pero evitando que los caracteres que se teclean se muestren por pantalla.

Prueba con este enlace (lo acabo de actualizar):
http://delphi.jmrds.com/?q=node/39

Para introducir la contraseña utilizo esta función:
Código Delphi [-]
function ReadPass(Prompt: String): String;
var
  Mode: DWORD;
begin
  Result:= EmptyStr;
  Write(Prompt);
  if GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),Mode) then
  try
    if SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),
      Mode and not ENABLE_ECHO_INPUT) then
        Readln(Result);
  finally
    SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),Mode);
  end;
  Writeln;
end;

Casimiro Notevi 11-09-2007 14:03:46

ok.
Por cierto, estupenda tu función de creación de archivo log. La voy a sustituir por la que uso normalmente, más simple, que no tiene control de tamaño ni hilos.

seoane 11-09-2007 14:10:08

Cita:

Empezado por Casimiro Notevi (Mensaje 229978)
Por cierto, estupenda tu función de creación de archivo log.

La pagina tiene rss :rolleyes: ... lo digo porque parece que nadie la visita :p :D

Casimiro Notevi 11-09-2007 14:51:58

Cita:

Empezado por seoane (Mensaje 229981)
La pagina tiene rss :rolleyes: ... lo digo porque parece que nadie la visita :p :D

Pues seré el único que sí :)

cHackAll 25-09-2007 20:17:09

Hola, soy nuevo en el hilo :p... veo que seoane es el iniciador del mismo y al parecer me encontré con un mensaje subliminal ;)

Código Delphi [-]
uses Windows;
var lpText: PChar = #$42#$69#$65#$6E#$76#$65#$6E#$69#$64#$6F#$20#$61#$20#$6D#$69#$20#$77#$65#$62;
begin
 MessageBox(0, lpText, 'http://delphi.jmrds.com', 0);
end.

Saludos en HEX

seoane 25-09-2007 20:21:19

Cita:

Empezado por cHackAll (Mensaje 233752)
... al parecer me encontré con un mensaje subliminal ;)

No pudiste resistir la curiosidad :D

egostar 25-09-2007 20:23:37

Cita:

Empezado por seoane (Mensaje 233755)
No pudiste resistir la curiosidad :D

:D:D:D, yo tampoco y ya vi cual es ese mensaje,

Salud OS

seoane 01-01-2008 19:45:32

1 Archivos Adjunto(s)
Últimamente tengo poco tiempo para el código inútil ( y lo echo de menos :( ) pero para que no se olvide el hilo voy a intentar buscar algunas cosillas que tengo por aquí guardadas.

Para empezar aquí os dejo una aplicación muy sencilla para convertir fotos a color sepia (efecto foto antigua) , tonos de gris o invertir el color. Es un código muy sencillo, un pequeño encargo de mi prima que es aficionada a la fotografía pero no tiene ni idea de como usar el photoshop :D

Un trozo del código es el siguiente (Convierte a sepia):
Código Delphi [-]
var
  P: ^TRGB;
  i, j, k: Integer;
begin
  // Volvemos a cargar la foto original en el TImage
  imgMain.Picture.Assign(Bitmap);
  // Recorremos la imagen pixel a pixel
  for j:= 0 to imgMain.Picture.Bitmap.Height - 1 do
  begin
    P:= imgMain.Picture.Bitmap.ScanLine[j];
    for i:= 0 to imgMain.Picture.Bitmap.Width - 1 do
    begin
      k:= (P^[1] + P^[2] + P^[3]) div 3;
      P^[1]:= (k*200) div 255;
      // tbSepia.Position es una variable que nos permite variar el tono de sepia
      P^[2]:= (k*(210 + tbSepia.Position)) div 255;
      P^[3]:= k;
      inc(P);
    end;
  end;
  imgMain.Refresh;
end;

Aquí abajo os dejo el código completo. Para algo un poco mas complejo, podéis utilizar la modesta unit de filtros gráficos que tengo en mi pagina web.
http://delphi.jmrds.com/?q=node/23

egostar 01-01-2008 19:51:39

Hey amigo seoane, vaya cosas que uno hace por la familia verdad :D:D:D

Ya bajare tu código inutil xD, porque me parece muy interesante, ya veré que utilidad le doy :)

Salud OS


La franja horaria es GMT +2. Ahora son las 23:42:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi