Está en la página 1de 5

CREATE TABLE algo_ritmo(

usuario1 varchar2(50),

inicial varchar2(50),

oculto varchar2(50),

contraseña numeric

);

CREATE TABLE variables(

id number,

valores varchar2(10)

);

CREATE TABLE CONTRASEÑA(

ID NUMERIC,

DIGITO NUMERIC

);

CREATE TABLE ENCRIPTACION(

ID NUMERIC,

VALOR VARCHAR2(1)

);

CREATE SEQUENCE incrementar START WITH 1;

CREATE OR REPLACE TRIGGER auto_incr2

BEFORE INSERT ON ENCRIPTACION

FOR EACH ROW


BEGIN

SELECT incrementar.NEXTVAL

INTO :new.id

FROM dual;

END;

CREATE TABLE caracteres(

ID NUMERIC,

USUARIO VARCHAR2(20),

PASSWORD VARCHAR2(20),

CONTRASEÑA NUMERIC

);

CREATE SEQUENCE incrementar1 START WITH 1;

CREATE OR REPLACE TRIGGER auto_incre

BEFORE INSERT ON caracteres

FOR EACH ROW

BEGIN

SELECT incrementar1.NEXTVAL

INTO :new.id

FROM dual;

END;

create or replace PROCEDURE insertar_valores

is
type array_t is varray(34) of varchar2(1);

array array_t :=
array_t('W','*','A','/','B','X','C','D','E','Y','?','F','G','#','H','I','!','Z','J','=','K','L','M','%','N','O','$','P','Q','R','S','T','U','
V');

begin

for i in 1..array.count loop

INSERT INTO ENCRIPTACION (VALOR) VALUES(array(i));

end loop;

end;

EXECUTE insertar_valores;

create or replace PROCEDURE encriptar(a_usuario IN varchar2,a_password in varchar2,a_contraseña in


number)

IS

i number :=0;

a_valores NUMBER := 0;

resultado number :=0;

a_contraseña2 varchar2(10);

s_valores varchar2(10);

longitud number;

longitud2 number;

concatenar varchar2(50);

concatenar2 varchar2(50);

a_valores VARCHAR2(50);

BEGIN
longitud := LENGTH(a_contraseña);

longitud2 := LENGTH(a_password);

for i in 1..longitud loop

a_valores := SUBSTRB(a_contraseña, i, 1);

resultado := resultado + a_valores;

end loop;

WHILE resultado > 35

LOOP

resultado := round(resultado/2);

END LOOP;

WHILE resultado <= 34

LOOP

if longitud2 = i then

resultado := 35;

else

if resultado = 35 then

resultado :=1;

else

select valor into a_valores from ENCRIPTACION WHERE ID=resultado;

concatenar := CONCAT (concatenar,a_valores);

resultado := resultado +1;

i :=i+1;

end if;

end if;

END LOOP;

INSERT INTO caracteres(USUARIO,PASSWORD,CONTRASEÑA)VALUES(a_usuario,concatenar,a_contraseña);


INSERT INTO
algo_ritmo(USUARIO1,INICIAL,OCULTO,CONTRASEÑA)VALUES(a_usuario,a_password,concatenar,a_contrase
ña);

COMMIT;

END;

EXECUTE encriptar(ana,'ghgjftrhy2154897',1);

create or replace PROCEDURE fijo(a_usuario IN varchar2,a_password in varchar2,a_contraseña in number)

IS

a_valores VARCHAR2(50);

BEGIN

select inicial

into a_valores

from algo_ritmo

where usuario1=a_usuario and a_password=oculto and contraseña=a_contraseña;

DBMS_OUTPUT.put_line('tu contraseña es: '||a_valores);

exception

when no_data_found then

dbms_output.put_line('Su contraseña no se encuentra');

END;

EXECUTE fijo(ana,'psdkl/())=.',1);

También podría gustarte