Data Sifreleme hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Data Sifreleme hakkında

Mesaj gönderen adelphiforumz »

Selamlar

Delphi içinde yazılmış aşağıdaki kodu Sql tarafında bir procedure olarak nasıl yazabilirim

Teşekkürler

Kod: Tümünü seç

function fn_DataSifrele(_sData : AnsiString) : AnsiString;
const
     X1 = 35782;
     X2 = 45987;
var
  I: byte;
  Anahtar: Word;
  sYeniData : Ansistring;
begin
  Anahtar := 1;
  SetLength(sYeniData,Length(_sData));
  Result := '';
  for I := 1 to Length(_sData) do begin
    sYeniData[I] := AnsiChar(byte(_sData[I]) xor (Anahtar shr 8));
    Result := Result + IntToHex(byte(sYeniData[I]),2);
    Anahtar := (byte(sYeniData[I]) + Anahtar) * X1 + X2;
  end;
end;
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Data Sifreleme hakkında

Mesaj gönderen sabanakman »

Kod: Tümünü seç

CREATE FUNCTION fn_DataSifrele(@_sData varchar(255))
RETURNS varchar(255)
AS
BEGIN
  declare @Result varchar(255), @YeniData varchar(255), @X1 int, @X2 int, @i tinyint, @Anahtar bigint, @Len int, @a tinyint, @tmp bigint
  set @Len=LEN(@_sData)
  set @X1 = 35782
  set @X2 = 45987

  set @Anahtar=1
  set @YeniData=@_sData
  set @Result=''
  set @i=1
  while @i<=@Len begin
    set @a=(ASCII(SubString(@_sData, @i, 1)))^(@Anahtar / power(2, 8)); -->sYeniData[I]
	set @Result=@Result+upper(right(master.dbo.fn_varbintohexstr(@a),2))
	set @tmp=((@a + @Anahtar) * @X1 + @X2) & 65535
	set @Anahtar=@tmp
    set @i=@i+1
  end

  RETURN @Result
END
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla