Aile Hekimliği Bilgi Sistemi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Aile Hekimliği Bilgi Sistemi

Mesaj gönderen ALUCARD »

arkadaşlar merhaba

bizim bölgemizde aile hekimliği uygulamasına geçildi.

hekimlerin kullanmkta oldu bir programda var ama

hekimlerin çoğu ücretinden dolayı programdan vazgeçmek istiyırlar

o nedenle bazı hekimlerle görüştüm ve bende bi demo istediler

buraya kadar herşey normal ama sağlık bakanlığı
http://www.saglik.gov.tr/AHBS/BelgeGost ... 909B6AD5ED

adresinde bu konu ile ilgili bi döküman yayınlamış.

ben internete bağlı bir prograöla dahja önce hiç çalışmadım ve bu servislerin nasıl kullanuıldığı konusundada pek bir bilgiye sahip değilim.

dökümanın içinde açıklamalarda var ama
ben çok bişey anlamadım
mesela ilk verilen açıklama şu
www.saglik.gov.tr yazdı:Tüm servisler HTTP BASIC AUTHENTICATION ile doğrulama yapmaktadır.
Kullanıcı Adı olarak TcKimlikNo kullanılmaktadır.
Şifreler SHA algoritması kullanılarak gönderilmelidir.
Örnek: şifre 1 ise 356A192B7913B04C54574D18C28D46E6395428AB gönderilmelidir.
http://www.saglik.gov.tr/AHBS/dosyagost ... isleri.zip

burda birde SHA algoritması var bu da ne olaki
md-5 algıoritmasını duymuştum ve çalışmıştım ama bunu ilk defa duyuyorum .

inşallah forumda bu konuda çalışma yapmış bi arkadaş vardır.

eğer bana bu konuda yardımcı olursanız sevinirim.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
bluekid
Kıdemli Üye
Mesajlar: 541
Kayıt: 11 Haz 2004 10:45
İletişim:

Mesaj gönderen bluekid »

ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

bluekid yazdı:google a sorun
Secure Hash Algorithm
http://en.wikipedia.org/wiki/SHA-1
http://e-cat.nm.ru/SHA256.html
sha bir sifreleme algoritması.... aynı degeri yeniden üretebilmesi ihtimalide çok zayıftır... secure hash idi yanlış hatırlamıyorsam.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Mesaj gönderen Battosai »

Merkezi veritabanı kullanılacağı için,güvenlik açısından böyle bir bağlantı istiyordur bakanlık...yani sen programına bu güvenli bağlantıyı eklemelisin...aslında bu iş online programlama işi heral HTTP BASIC AUTHENTICATION dediğine göre...
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

ben bu sha algoritmasını nasıl kullanıcam bunu anlayamadım
birde dokumanların içinde
Islemler.wsdl
IslemlerMesaj.xsd
IslemlerVeri.xsd

gibi bi suru dosya var

bunlar delphi ile nasıl kullanılacak onuda anlamadım

yapıları xml dosyalarına benziyor ama ben çok bişey anlamadım işin doğrusu
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

ALUCARD yazdı:ben bu sha algoritmasını nasıl kullanıcam bunu anlayamadım
birde dokumanların içinde
Islemler.wsdl
IslemlerMesaj.xsd
IslemlerVeri.xsd

gibi bi suru dosya var

bunlar delphi ile nasıl kullanılacak onuda anlamadım

yapıları xml dosyalarına benziyor ama ben çok bişey anlamadım işin doğrusu
kodu buraya yapıştır bakalım..

Şöyle izah edeyim kısaca

şifren ali ise bunun sha sobucu "sgr675765gyjhg7867978jkhkjh" gibi bir sonuç dönecek.

sen yetki isterken ali gönderirsen o bunu sgha vapıp vt den bakmalıdı ancak tembeller demekki sende sha lanmış haaliyle istiyorlar.

sha algoritması php source tada vardır.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

IslemlerMesaj.xsd dosyasının içeriği

Kod: Tümünü seç

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="IslemlerMesaj" targetNamespace="http://schemas.saglik.gov.tr/MVS/1.0.0.0/IslemlerMesaj.xsd" elementFormDefault="qualified" xmlns="http://schemas.saglik.gov.tr/MVS/1.0.0.0/IslemlerMesaj.xsd" xmlns:mstns="http://schemas.saglik.gov.tr/MVS/1.0.0.0/IslemlerMesaj.xsd" xmlns:import="http://schemas.saglik.gov.tr/MVS/1.0.0.0/IslemlerVeri.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0.0.0">
  <xs:import id="IslemlerVeri" schemaLocation="IslemlerVeri.xsd" namespace="http://schemas.saglik.gov.tr/MVS/1.0.0.0/IslemlerVeri.xsd" />
  <xs:element name="SaglikPersonelGuncelleIstek">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="SaglikPersonelKayitBilgi" type="import:SAGLIKPERSONELBILGI" maxOccurs="1" minOccurs="1" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SaglikPersonelGuncelleCevap">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="SONUC" type="import:DURUMKAYDI_SAGLIKPERSONEL_GUNCELLE" minOccurs="1" maxOccurs="1" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SaglikPersonelGetirIstek">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="SaglikPersonelKimlikNo" type="import:strTCKIMLIK" minOccurs="1" maxOccurs="1" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SaglikPersonelGetirCevap">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="SaglikPersonelKayitBilgi" type="import:SAGLIKPERSONELBILGI" minOccurs="0" maxOccurs="1" />
        <xs:element name="SONUC" type="import:DURUMKAYDI_SAGLIKPERSONEL_GETIR" minOccurs="1" maxOccurs="1" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="KullaniciSifreDegistirIstek">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="KullaniciKimlikNo" type="import:strTCKIMLIK" maxOccurs="1" minOccurs="1" />
        <xs:element name="KullaniciYeniSifre" maxOccurs="1" minOccurs="1" type="import:strSIFRE" />
        <xs:element name="KullaniciEskiSifre" type="import:strSIFRE" maxOccurs="1" minOccurs="1" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="KullaniciSifreDegistirCevap">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="SONUC" type="import:DURUMKAYDI_SIFRE_DEGISTIR" maxOccurs="1" minOccurs="1" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="HastaHekimBilgisiGetirIstek">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="HastaKimlikNo" type="import:strTCKIMLIK" maxOccurs="1" minOccurs="1" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="HastaHekimBilgisiGetirCevap">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="SaglikPersonelBilgi" type="import:SAGLIKPERSONEL_REF" minOccurs="0" maxOccurs="1" />
        <xs:element name="SONUC" type="import:DURUMKAYDI_SAGLIKPERSONEL_GETIR" minOccurs="1" maxOccurs="1" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="KullaniciDogrulaIstek">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="KullaniciKimlikNo" type="import:strTCKIMLIK" maxOccurs="1" minOccurs="1" />
        <xs:element name="Sifre" type="import:strHASH" minOccurs="1" maxOccurs="1" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="KullaniciDogrulaCevap">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="SONUC" type="import:DURUMKAYDI_KULLANICI_DOGRULA" maxOccurs="1" minOccurs="1" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

Örneğin ekranda iki box var ;

user ve parola.

sen bu parola için aldığın texti sha fonksiyonu ile şifreleyip wsdl e öyle göndereceksin. aksi taktirde adam parola yerine destan uzulunluğunda manyak bir text ezberlemek zorunda kalacak.

yalnız SHA nın benim bildiğim tek bir sürümü yok. yanlış hatırlamıyorsam 32 bitlik,48 vs türevleride var. PHP de isimleride farklı ve dönen karakter sayısıda. SHA için sana bir algoritma verdimi bunlar ?
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

bana verilen herhangi bir algoritma yok

http://www.saglik.gov.tr/AHBS/dosyagost ... isleri.zip

sadece bu linkteki dosyalar var

istersen bi indir bak içine ben çok bişey anlamadın
ikutluay yazdı:sen bu parola için aldığın texti sha fonksiyonu ile şifreleyip wsdl e öyle göndereceksin
hatta bunu bile nasıl yapacağımı kestiremedim dahan
yani gönder butonun içine ne yazacağım
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

http://www.torry.ru/vcl/security/strong/chipher.zip

bu dosyada baya guclu seyler var
A Compendium of various strong Encryption Algorithm and more... includes:

* 40 Ciphers (IDEA, Blowfish, Twofish, DES, Square ...)
* 23 Hashs (MD4/5, SHA/1, RipeMD, Havel, Tiger ...)
* 5 Checksums (CRC32, CRC16-CCITT, CRC16-Standard ...)
* 6 Textformats (MIME Base 64, XX/UU Coding, RFC1760 Six Word ...)
* 2 Randoms (LFSR Linear Feedback Shift Register with variable Period upto 2^2032-1 ...)
* with Ciphers can be encrypt in Modes CTS/ CBC/ CFB/ OFB/ ECB
* Ciphers supports Message Authentication Codes in CBC-MAC/ CFB-MAC/ CTS-MAC
* fast Implementation (i.e. Blowfish > 8Mb/sec, MD4 > 27Mb/sec)
* Internet RFC2289/RFC1760/RFC2444 One Time Password Routines as Component
[/code]
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

@ikutluay hocam

öncelikle cevapların için çok teşekkür ederim

sha256 algoritmasını buldum ve buraya da kotyuyorum
belki başka birini işine yarar diye ama bana sha1 in algoritması lazım

şimdi onu aramaya başladım

Kod: Tümünü seç

unit SHA256;

interface

type
  TSHA256MessageDigest = array[0..31] of Byte;
  
  TSHA256HashValue = array[0..7] of LongWord;
  TSHA256MessageBuffer = array[0..63] of Byte;

  TSHA256Calc = class
  private
    FHashValue: TSHA256HashValue;
    FCount: Int64;
    FBuffer: TSHA256MessageBuffer;
  public
    constructor Create;
    procedure Input(const Data; Length: Cardinal);
    function Final: TSHA256MessageDigest;
  end;

function SHA256MessageDigest(const Message;
  Length: Cardinal): TSHA256MessageDigest;

function SHA256StringMessageDigest(const S: string): TSHA256MessageDigest;
function SHA256FileMessageDigest(const FileName: string): TSHA256MessageDigest;

function SHA256MessageDigestToString(const D: TSHA256MessageDigest): string;

implementation

{$IFDEF MSWINDOWS}                  
uses
  Windows;
{$ENDIF}

type
  Bytes = array[0..$7ffffffe] of Byte;
  LongWords = array[0..$1ffffffe] of LongWord;


function ROR(X: LongWord; Count: Integer): LongWord;
{$IFDEF PUREPASCAL}
begin
  Result := (X shr Count) or (X shl (32 - Count));
end;
{$ELSE}
asm
        MOV     ECX,EDX
        ROR     EAX,CL
end;
{$ENDIF}


procedure ConvertEndianness32(const Source; var Dest; Count: Integer);
{$IFDEF PUREPASCAL}
type
  Bytes = array[0..3] of Byte;
var
  I: Integer;
  S, D: LongWord;
begin
  for I := 0 to Count - 1 do
  begin
    S := LongWords(Source)[I];
    Bytes(D)[0] := Bytes(S)[3];
    Bytes(D)[1] := Bytes(S)[2];
    Bytes(D)[2] := Bytes(S)[1];
    Bytes(D)[3] := Bytes(S)[0];
    LongWords(Dest)[I] := D;
  end;
end;
{$ELSE}
asm
        JECXZ   @@exit
        PUSH    ESI
        PUSH    EDI
        MOV     ESI,EAX
        MOV     EDI,EDX
@@loop:
        LODSD
        BSWAP   EAX
        STOSD
        LOOP    @@loop
        POP     EDI
        POP     ESI
@@exit:
end;
{$ENDIF}

procedure ConvertEndianness64(const Source; var Dest);
{$IFDEF PUREPASCAL}
type
  Bytes = array[0..7] of Byte;
var
  Temp: Bytes;
begin
  Temp[0] := Bytes(Source)[7];
  Temp[1] := Bytes(Source)[6];
  Temp[2] := Bytes(Source)[5];
  Temp[3] := Bytes(Source)[4];
  Temp[4] := Bytes(Source)[3];
  Temp[5] := Bytes(Source)[2];
  Temp[6] := Bytes(Source)[1];
  Temp[7] := Bytes(Source)[0];
  Bytes(Dest) := Temp;
end;
{$ELSE}
asm
        MOV     ECX,[EAX]
        MOV     EAX,[EAX+4]
        BSWAP   EAX
        BSWAP   ECX
        MOV     [EDX],EAX
        MOV     [EDX+4],ECX
end;
{$ENDIF}


procedure Frac32RootPrimes(var Dest: array of LongWord; Base: Integer);
var
  I, N, D: Integer;
  IsPrime: Boolean;
begin
  N := 1;
  for I := 0 to High(Dest) do
  begin
    repeat
      Inc(N);
      IsPrime := True;
      for D := N - 1 downto 2 do
        if N mod D = 0 then
        begin
          IsPrime := False;
          Break;
        end;
    until IsPrime;
    Dest[I] := Trunc(Frac(Exp(Ln(N) / Base)) * $100000000);
  end;
end;


// ----------------------------------------------------------------------------

function S0(x: LongWord): LongWord;
{$IFDEF PUREPASCAL}
begin
  Result := ROR(x, 2) xor ROR(x, 13) xor ROR(x, 22);
end;
{$ELSE}
asm
        MOV     EDX,EAX
        MOV     ECX,EAX
        ROR     EAX,2
        ROR     EDX,13
        ROR     ECX,22
        XOR     EAX,EDX
        XOR     EAX,ECX
end;
{$ENDIF}

function S1(x: LongWord): LongWord;
{$IFDEF PUREPASCAL}
begin
  Result := ROR(x, 6) xor ROR(x, 11) xor ROR(x, 25);
end;
{$ELSE}
asm
        MOV     EDX,EAX
        MOV     ECX,EAX
        ROR     EAX,6
        ROR     EDX,11
        ROR     ECX,25
        XOR     EAX,EDX
        XOR     EAX,ECX
end;
{$ENDIF}

function _s0(x: LongWord): LongWord;
{$IFDEF PUREPASCAL}
begin
  Result := ROR(x, 7) xor ROR(x, 18) xor x shr 3;
end;
{$ELSE}
asm
        MOV     EDX,EAX
        MOV     ECX,EAX
        ROR     EAX,7
        ROR     EDX,18
        SHR     ECX,3
        XOR     EAX,EDX
        XOR     EAX,ECX
end;
{$ENDIF}

function _s1(x: LongWord): LongWord;
{$IFDEF PUREPASCAL}
begin
  Result := ROR(x, 17) xor ROR(x, 19) xor x shr 10;
end;
{$ELSE}
asm
        MOV     EDX,EAX
        MOV     ECX,EAX
        ROR     EAX,17
        ROR     EDX,19
        SHR     ECX,10
        XOR     EAX,EDX
        XOR     EAX,ECX
end;
{$ENDIF}

var
  K: array[0..63] of LongWord;
  InitialHashValue: TSHA256HashValue;

procedure Process(const M; var _H: TSHA256HashValue);
var
  W: array[0..63] of LongWord;
  t, a, b, c, d, e, f, g, h, T1, T2: LongWord;
begin
  // 1. Preparing the message schedule, {Wt}:
  ConvertEndianness32(M, W, 16);
  for t := 16 to 63 do
    W[t] := _s1(W[t - 2]) + W[t - 7] + _s0(W[t - 15]) + W[t - 16];

  // 2. Initializing the eight working variables with the (i-1)'st hash value:
  a := _H[0];
  b := _H[1];
  c := _H[2];
  d := _H[3];
  e := _H[4];
  f := _H[5];
  g := _H[6];
  h := _H[7];

  // 3.
  for t := 0 to 63 do
  begin
    T1 := h + S1(e) + {Ch}((e and f) xor ((not e) and g)){/Ch} + K[t] + W[t];
    T2 := S0(a) + {Maj}((a and b) xor (a and c) xor (b and c)){/Maj};
    h := g;
    g := f;
    f := e;
    e := d + T1;
    d := c;
    c := b;
    b := a;
    a := T1 + T2;
  end;

  // 4. Computing the i'th intermediate hash value H(i):
  Inc(_H[0], a);
  Inc(_H[1], b);
  Inc(_H[2], c);
  Inc(_H[3], d);
  Inc(_H[4], e);
  Inc(_H[5], f);
  Inc(_H[6], g);
  Inc(_H[7], h);
end;


{ TSHA256Calc }

constructor TSHA256Calc.Create;
begin
  FHashValue := InitialHashValue;
end;

procedure TSHA256Calc.Input(const Data; Length: Cardinal);
var
  I, Index, PartLen: Cardinal;
begin
  Index := FCount and $3f;
  Inc(FCount, Length);
  PartLen := 64 - Index;
  if Length >= PartLen then
  begin
    Move(Data, FBuffer[Index], PartLen);
    Process(FBuffer, FHashValue);
    I := PartLen;
    while I + 63 < Length do
    begin
      Process(Bytes(Data)[I], FHashValue);
      Inc(I, 64);
    end;
    Index := 0;
  end
  else
    I := 0;
  Move(Bytes(Data)[I], FBuffer[Index], Length - I);
end;

function TSHA256Calc.Final: TSHA256MessageDigest;
var
  BitLength: Int64;
  BitLengthBigEndian: array[0..7] of Byte;
  Padding: TSHA256MessageBuffer;
  PadLen: Integer;
begin
  BitLength := FCount shl 3;
  ConvertEndianness64(BitLength, BitLengthBigEndian);
  PadLen := (119 - FCount and $3f) and $3f + 1;
  FillChar(Padding, PadLen, 0);
  Padding[0] := $80;
  Input(Padding, PadLen);
  Input(BitLengthBigEndian, SizeOf(Int64));
  ConvertEndianness32(FHashValue, Result, Length(FHashValue));
  Free;
end;


// ----------------------------------------------------------------------------

function SHA256MessageDigest(const Message;
  Length: Cardinal): TSHA256MessageDigest;
begin
  with TSHA256Calc.Create do
    try
      Input(Message, Length);
      Result := Final;
    except
      Free;
      raise;
    end;
end;


function SHA256StringMessageDigest(const S: string): TSHA256MessageDigest;
begin
  Result := SHA256MessageDigest(Pointer(S)^, Length(S));
end;

function SHA256FileMessageDigest(const FileName: string): TSHA256MessageDigest;
{$IFDEF MSWINDOWS}
var
  FileHandle: THandle;
  MapHandle: THandle;
  ViewPointer: Pointer;
{$ENDIF}
begin
  FillChar(Result, SizeOf(TSHA256MessageDigest), 0);
{$IFDEF MSWINDOWS}
  FileHandle := CreateFile(PChar(FileName), GENERIC_READ, FILE_SHARE_READ or
    FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or
    FILE_FLAG_SEQUENTIAL_SCAN, 0);
  if FileHandle <> INVALID_HANDLE_VALUE then
    try
      MapHandle := CreateFileMapping(FileHandle, nil, PAGE_READONLY, 0, 0, nil);
      if MapHandle <> 0 then
        try
          ViewPointer := MapViewOfFile(MapHandle, FILE_MAP_READ, 0, 0, 0);
          if ViewPointer <> nil then
            try
              Result := SHA256MessageDigest(ViewPointer^,
                GetFileSize(FileHandle, nil));
            finally
              UnmapViewOfFile(ViewPointer);
            end;
        finally
          CloseHandle(MapHandle);
        end;
    finally
      CloseHandle(FileHandle);
    end;
{$ENDIF}
end;


function SHA256MessageDigestToString(const D: TSHA256MessageDigest): string;
const
  Digits: array[0..15] of Char =
    ('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');
var
  I: Integer;
  TempStr: string[64];
begin
  TempStr := '';
  for I := 0 to 31 do
    TempStr := TempStr + Digits[D[I] shr 4] + Digits[D[I] and $f];
  Result := TempStr;
end;


initialization
  Frac32RootPrimes(K, 3);
  Frac32RootPrimes(InitialHashValue, 2);

end.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

hocam ben bubu indirmedim

http://www.torry.ru açılmıyor
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
deltas
Üye
Mesajlar: 358
Kayıt: 06 Mar 2004 01:08
Konum: Malatya...
İletişim:

Mesaj gönderen deltas »

Hocam bu diğer soap uygulamaları gibi bişey değil herhalde. diğer uygulamalrda wsdl import edince gerekli herşey karşımıza çıkıyordu. yani nereye hangi bilgiyi hangi tipte göndereceğimiz anlaşılıyordu. ancak ben bundan hiç bişey anlamadım. wsdl import edince sadece 10-15 satırlık bir kod çıkıyor o kadar. sadece sözlük kısmını anladım. diğer kısımlardan pek bişey anlamadım. Hocam sorunu çözdükten sonra bilgi verirseniz memnun olurum.
Nice İnsanlar gördüm üstünde elbise yok;
Nice elbiseler gördüm içinde insan yok.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

http://www.torry.net deneyin. benim evde vardır inşallah akşam bakarım. şu an işteyim.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Cevapla