Welcome to Sign in | Help
in Search

Criptare date intr-o tabela...

Last post 03-21-2008, 1:52 PM by Diana. 8 replies.
Sort Posts: Previous Next
  •  03-20-2008, 1:44 PM 4434

    Criptare date intr-o tabela...

    Salut, am o tabela cu un camp (EXPLICATIE) care contine aprox 20 caractere (cifre si litere) pe care as vrea sa-l criptez prin inlocuire cu valori aflate intr-o alta tabela. A doua tabela contine 'cheia' de genul: A se inlocuieste cu 7, B cu F, etc. Cum as putea face criptarea automat printr-o procedura stocata? (trebuie sa o fac de un numar mare de ori, deci trebuie automatizata cumva operatia si trebuie sa dureze si putin....). Inlocuirea trebuie sa se faca in aceasi tabela care contine originalul.

    Multumesc!

  •  03-20-2008, 9:45 PM 4442 in reply to 4434

    Re: Criptare date intr-o tabela...

    pentru sql server 2005 suporta criptarea continutului unei coloane.
    criptarea se face pe baza unor chei, consulta documentatia pentru mai multe informatii

    pe sql 2008 poti cripta intreaga tabela.


  •  03-20-2008, 10:47 PM 4445 in reply to 4434

    Re: Criptare date intr-o tabela...

    ThePuiu:

    Salut, am o tabela cu un camp (EXPLICATIE) care contine aprox 20 caractere (cifre si litere) pe care as vrea sa-l criptez prin inlocuire cu valori aflate intr-o alta tabela. A doua tabela contine 'cheia' de genul: A se inlocuieste cu 7, B cu F, etc. Cum as putea face criptarea automat printr-o procedura stocata? (trebuie sa o fac de un numar mare de ori, deci trebuie automatizata cumva operatia si trebuie sa dureze si putin....). Inlocuirea trebuie sa se faca in aceasi tabela care contine originalul.

    Multumesc!


    Nu vad alta solutie decit sa parcurgi cu un cursor fiecare linie/valoarea din Explicatei.
    Problema pe care o vad este : sa zicem ca A inlocuiesti cu 7. iar pe 7 cu X
    Valoarea A7 trebuie sa fie 7x, nu xx...

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  03-21-2008, 9:05 AM 4451 in reply to 4434

    Re: Criptare date intr-o tabela...

    poti sa incerci urmatoarea functie:

    CREATE FUNCTION criptare_String
    (
      -- Add the parameters for the function here
      @str nvarchar(50)
    )
    RETURNS nvarchar(50)
    AS
    BEGIN
    -- Declare the return variable here
    DECLARE @result as nvarchar(50)
    select @result = ''

    -- Add the T-SQL statements to compute the return value here
    declare @continue as int


    select @continue = len(@str)

    while @continue > 0
    begin
      select @result = (SELECT replacement FROM eug_tst WHERE (car = substring(@str,@continue,1)))
            + @result
      select @continue = @continue - 1
      
    end



    -- Return the result of the function
    RETURN @result


    eu am folosit un tabel "eug_tst" care contine campul "car" - caracterul ce trebuie inlocuit si "replacement" - caracterul cu care inlocuim.

    o sa ia destul de mult cand o rulezi prima data pe tot tabelul dar dupa aceea poti sa pui codul (sau apelul) intr-un trigger care sa se ruleze la fiecare insert si update si acolo nu ar trebui sa se simta la viteza (decat daca faci importuri cu seturi mari de inregistrari, caz in care ar trebui cautata alta solutie)
  •  03-21-2008, 9:42 AM 4452 in reply to 4451

    Re: Criptare date intr-o tabela...

    Eu "votez" cu Marcel. Cred ca este mai bine sa profiti de ceea ce ai deja la dispozitie - cel putin de la SQL 2005 "in sus" - decat sa te "chinui" sa-ti faci propriul algoritm de incriptare "from scratch".
  •  03-21-2008, 10:56 AM 4454 in reply to 4452

    Re: Criptare date intr-o tabela...

    Da, e adevarata chestia cu criptarea coloanei sau a tabelei, dar eu trebuie sa fac criptarea intr-un mdb Access...am uitat sa precizez. Functia de mai sus cu parcurgerea este ceea ce vroiam.... Pe un Core 2, criptarea dureaza aprox 5 sec la citeva mii de recorduri, deci e rezonabil!  Multumesc mult tuturor!

  •  03-21-2008, 11:30 AM 4455 in reply to 4454

    Re: Criptare date intr-o tabela...

    pai functia respectiva nu ar trebui sa functioneze pe access. Spune-mi te rog cum ai procedat pt ca e foarte util de stiut cum ai facut conversia.
  •  03-21-2008, 1:33 PM 4458 in reply to 4455

    Re: Criptare date intr-o tabela...

    evident ca nu functioneaza in Access dar pt mine a fost folositoare aceasta bucata de cod:
    select @continue = len(@str)

    while @continue > 0
    begin

      select @result = (SELECT replacement FROM eug_tst WHERE (car = substring(@str,@continue,1)))
            + @result
      select @continue = @continue - 1

    pt ca pe baza ei am gindit functia scrisa in C#.
  •  03-21-2008, 1:52 PM 4462 in reply to 4458

    Re: Criptare date intr-o tabela...

    Nu te ajuta clasele din namespace-ul System.Security.Criptography?

View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems