![]() |
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 ![]() |
Yazar | |
M-Guney ![]() Deneyimli Üye ![]() Kayıt Tarihi: 16 Eylül 2025 Konum: Konya, Meram, K Durum: Aktif Değil Puanlar: 42 |
![]() ![]() ![]() ![]() ![]() 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. |
|
![]() |
|
ztashia ![]() Forum Yöneticisi ![]() ![]() Kayıt Tarihi: 25 Mayıs 2023 Konum: Türkiye/Konya Durum: Aktif Değil Puanlar: 50 |
![]() ![]() ![]() ![]() ![]() |
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; } ---
|
|
![]() |
|
M-Guney ![]() Deneyimli Üye ![]() Kayıt Tarihi: 16 Eylül 2025 Konum: Konya, Meram, K Durum: Aktif Değil Puanlar: 42 |
![]() ![]() ![]() ![]() ![]() |
// 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. |
|
![]() |
Yanıt Yaz ![]() |
|
Tweet |
Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |