Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Clomosy ile değişken kullanımı
  Aktif Konular Aktif Konular RSS - Hashleme nasıl yapılır
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

Hashleme nasıl yapılır

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
M-Guney Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 42
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Hashleme nasıl yapılır
    Gönderim Zamanı: 24 Eylül 2025 Saat 18:11
Ms Server da username ve password_hash kullanacaktım fakat Clomosy de passwordu nasıl hashleyeceğimi bilmiyorum.
void AddRole{
// Put
 clRest.BaseURL = 'http://BenimIP:3000/addrole';
 clRest.Accept = 'application/json';
 clRest.Method = rmPUT;
 clRest.AddBody('{"name": "'+editRoleName.Text+'"}','application/json');
 //clRest.AddHeader('Content-Type','application/json');
 clRest.Execute;
 ShowMessage(clRest.Response);
}
bu kısımda benzer bir şekilde Login işlemini Post olarak rest api ye istek atmak istiyorum. Eğer ki olmaz ise node js deki apimde mi hashlemem gerekiyor ya da aes ile şifre alınan şifreyi decrypt edip yazılan şifrenin encrypt haliyle aynı mı diye kontrol etmem gerekir.
Yukarı Dön
ztashia Açılır Kutu İzle
Forum Yöneticisi
Forum Yöneticisi
Simge

Kayıt Tarihi: 25 Mayıs 2023
Konum: Türkiye/Konya
Durum: Aktif Değil
Puanlar: 50
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (2) Teşekkürler(2)   Alıntı ztashia Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 25 Eylül 2025 Saat 09:18
Merhabalar,
Aşağıda TCLCrypto kullanımı örneği vardır. Bu Component ile Hash'leme yapabilirsiniz.

---
var
MyForm:TCLForm;
Memo1 : TclMemo;
Crypto: TCLCrypto;
GirisMetni: string;
SifrelenmisMetin,
CozumlenmisMetin,
SHA3Hash, SHA2Hash, SHA3OzelHash: string;
IVOznek, AnahtarOznek, HexCikti, HamCikti: string; 
 user,scopes:string;
{
MyForm = TCLForm.Create(Self);

Memo1 = MyForm.AddNewMemo(MyForm,'Memo1','');
Memo1.Align = alClient;

  // AES Nedir?
  // AES (Advanced Encryption Standard), simetrik bir şifreleme algoritmasıdır.
  // Veriyi güvenli bir şekilde şifrelemek için bir anahtar kullanır. Genellikle
  // 128, 192 veya 256 bit anahtar uzunlukları ile çalışır.

  // SHA-2 Nedir?
  // SHA-2 (Secure Hash Algorithm 2), kriptografik bir hash algoritmasıdır.
  // Veri bütünlüğünü sağlamak ve kimlik doğrulama için kullanılır. 256 ve 512 bit
  // gibi farklı hash uzunlukları sunar.

  // SHA-3 Nedir?
  // SHA-3, SHA-2'nin gelişmiş bir versiyonudur. Modern güvenlik ihtiyaçlarını
  // karşılamak için tasarlanmıştır. TshA ve TxOF modlarında çalışabilir.


  // Define the input text to be encrypted and hashed
  GirisMetni = 'TestText';

  // Instantiate the cryptographic library object
  Crypto = TCLCrypto.Create;
  try
    try
      // Kullanıcı tanımlı IV ve anahtarla AES Şifreleme Yapılandırması
      Crypto.AES.AType = atcbc;              // AES Cipher Block Chaining (CBC) modunu kullan
      Crypto.AES.KeyLength = kl256;          // Anahtar uzunluğunu 256 bit olarak ayarla
      Crypto.AES.OutputFormat = base64;      // Şifrelenmiş metni Base64 formatında çıktı
      Crypto.AES.PaddingMode = PKCS7;        // Blok tamamlanması için PKCS7 dolgu modunu kullan
      Crypto.AES.Unicode = yesUni;           // Unicode desteğini etkinleştir
      Crypto.AES.IVMode = userdefined; // Kullanıcı tanımlı Başlatma Vektörü (IV) kullan
      Crypto.AES.IV = 'BuBirIVnumarasii';    // IV'yi tanımlayın
      Crypto.AES.Key = 'BuBirKeyDirHaberinizOlsunTamamMi'; // Şifreleme anahtarını tanımlayın

      // AES kullanarak giriş metnini şifreleyin
      SifrelenmisMetin = Crypto.AES.Encrypt(GirisMetni);
      Memo1.Lines.Text = 'AES Şifrelenmiş Metin (CBC Modu):';
      Memo1.Lines.Add(SifrelenmisMetin);
      Memo1.Lines.Add('~~~~~~~~~~~Cozumleme~~~~~~~~~~~~~~~~~~~~~');
      CozumlenmisMetin = Crypto.AES.DecryptStr(SifrelenmisMetin);
      Memo1.Lines.Add(CozumlenmisMetin);

      // Rastgele IV ile AES Şifreleme Yapılandırması
      Crypto.AES.IVMode = rand;      // Rastgele bir IV kullan
      IVOznek = Crypto.AES.Encrypt(GirisMetni);
      Memo1.Lines.Add('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
      Memo1.Lines.Add('AES Şifrelenmiş Metin (Rastgele IV):');
      Memo1.Lines.Add(IVOznek);

      // ECB modunda AES Şifreleme
      Crypto.AES.AType = atECB;              // ECB moduna geçiş yap
      AnahtarOznek = Crypto.AES.Encrypt(GirisMetni);
      Memo1.Lines.Add('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
      Memo1.Lines.Add('AES Şifrelenmiş Metin (ECB Modu):');
      Memo1.Lines.Add(AnahtarOznek);

      // Şifrelenmiş metni Hexadecimal olarak çıktı
      Crypto.AES.OutputFormat = hexa;        // Çıktı formatını hexadecimal olarak değiştir
      HexCikti = Crypto.AES.Encrypt(GirisMetni);
      Memo1.Lines.Add('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
      Memo1.Lines.Add('AES Şifrelenmiş Metin (Hexadecimal Çıktı):');
      Memo1.Lines.Add(HexCikti);

      // Şifrelenmiş metni Ham İkili olarak çıktı
      Crypto.AES.OutputFormat = raw;         // Çıktı formatını ham ikili olarak değiştir
      HamCikti = Crypto.AES.Encrypt(GirisMetni);
      Memo1.Lines.Add('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
      Memo1.Lines.Add('AES Şifrelenmiş Metin (Ham Çıktı):');
      Memo1.Lines.Add(HamCikti);

      // SHA-3 Hash Yapılandırması (tsha modu)
      Crypto.SHA3Hash.AType = tsha;          // tsha modunda SHA-3 hash algoritmasını kullan
      Crypto.SHA3Hash.OutputFormat = base64; // Hash'i Base64 formatında çıktı
      Crypto.SHA3Hash.HashSizeBits = 512;    // Hash boyutunu 512 bit olarak ayarla
      Crypto.SHA3Hash.Version = 512;         // SHA-3 versiyonunu ayarla (tsha modunda kullanıcı tarafından ayarlanamaz)

      // Giriş metninin SHA-3 hash'ini oluşturun
      SHA3Hash = Crypto.SHA3Hash.Hash(GirisMetni);
      Memo1.Lines.Add('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
      Memo1.Lines.Add('SHA-3 Hash (tsha modu):');
      Memo1.Lines.Add(SHA3Hash);

      // SHA-3 Hash Yapılandırması (txof modu)
      Crypto.SHA3Hash.AType = txof;          // txof modunda SHA-3 hash algoritmasını kullan
      Crypto.SHA3Hash.OutputFormat = base64; // Hash'i Base64 formatında çıktı
      Crypto.SHA3Hash.HashSizeBits = 64;     // Özel hash boyutunu ayarla (8'in katı olmalı)
      Crypto.SHA3Hash.Version = 256;         // txof modunda kullanıcı tarafından ayarlanabilir versiyon

      // Giriş metninin SHA-3 özel hash'ini oluşturun
      SHA3OzelHash = Crypto.SHA3Hash.Hash(GirisMetni);
      Memo1.Lines.Add('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
      Memo1.Lines.Add('SHA-3 Hash (txof modu):');
      Memo1.Lines.Add(SHA3OzelHash);

      // SHA-2 Hash Yapılandırması
      Crypto.SHA2Hash.OutputFormat = base64; // Hash'i Base64 formatında çıktı
      Crypto.SHA2Hash.HashSizeBits = 512;    // Hash boyutunu 512 bit olarak ayarla

      // Giriş metninin SHA-2 hash'ini oluşturun
      SHA2Hash = Crypto.SHA2Hash.Hash(GirisMetni);
      Memo1.Lines.Add('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
      Memo1.Lines.Add('SHA-2 Hash:');
      Memo1.Lines.Add(SHA2Hash);
      
      user = 'reader';
      
      Crypto.JWT.SetClaim('user', user);
      Crypto.JWT.SetClaim('admin', user == 'admin');

      Scopes = 'reader';
      if ((User == 'admin') || (User == 'writer'))
        Scopes = Scopes + ' writer';
        
      Crypto.JWT.SetClaim('scope', Scopes);
      Memo1.Lines.Add('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
      Memo1.Lines.Add('JWT:');
      Memo1.Lines.Add(Crypto.JWT.CompactToken('super_secret_0123456789_0123456789', 256));
          
    except 
      ShowMessage('Unknown Error');
    }
  finally
    Crypto.Free;
  }

MyForm.Run;
}
---
Yukarı Dön
M-Guney Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 42
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 25 Eylül 2025 Saat 10:05
      // Giriş metninin SHA-3 hash'ini oluşturun
      SHA3Hash = Crypto.SHA3Hash.Hash(GirisMetni);
      Memo1.Lines.Add('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
      Memo1.Lines.Add('SHA-3 Hash (tsha modu):');
      Memo1.Lines.Add(SHA3Hash);

Hashleyip veritabanına eklediğim ile editin hashlenmiş halinin aynı olduğu kontrolünü Clomosy de yapmayı düşünüyorum veri gizliliği için fakat hashlediğim bir veriyi nasıl decrypt edeceğimi bulamadım.
Detaylı cevabınız için teşekkür ederim.
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,047 Saniyede Yüklendi.