{"id":39447,"date":"2026-02-21T16:30:47","date_gmt":"2026-02-21T13:30:47","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/"},"modified":"2026-02-21T16:30:47","modified_gmt":"2026-02-21T13:30:47","slug":"hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/","title":{"rendered":"Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r"},"content":{"rendered":"<h2>Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r<\/h2>\n<p>Hedera Hashgraph, y\u00fcksek performansl\u0131, g\u00fcvenli ve adil bir da\u011f\u0131t\u0131k defter teknolojisi sunarak dijital d\u00fcnyada \u00f6nemli bir yer edinmi\u015ftir. Bu platformun temelinde yatan g\u00fcvenlik mekanizmalar\u0131ndan biri de dijital imzalard\u0131r. Ancak, Hedera \u00fczerinde mesaj imza do\u011frulamas\u0131n\u0131 yaparken, \u00f6zellikle SDK&#8217;lar d\u0131\u015f\u0131ndaki ortamlarda veya \u00f6zel entegrasyonlarda, genellikle g\u00f6zden ka\u00e7an ve &#8220;belgelenmemi\u015f&#8221; olarak nitelendirilebilecek kritik bir detay bulunmaktad\u0131r. Bu makale, Hedera mesaj imza do\u011frulamas\u0131n\u0131n bu gizli y\u00f6nlerini ayd\u0131nlatmay\u0131 ve geli\u015ftiricilere sa\u011flam ve g\u00fcvenilir do\u011frulama mekanizmalar\u0131 olu\u015fturmalar\u0131 i\u00e7in gerekli bilgiyi sunmay\u0131 ama\u00e7lamaktad\u0131r.<\/p>\n<h2>Dijital \u0130mzalar\u0131n Temelleri ve Hedera&#8217;daki Rol\u00fc<\/h2>\n<p>Dijital imzalar, kriptografinin temel ta\u015flar\u0131ndan biridir ve dijital d\u00fcnyada kimlik do\u011frulama, veri b\u00fct\u00fcnl\u00fc\u011f\u00fc ve inkar edilemezlik sa\u011flamak i\u00e7in kullan\u0131l\u0131r. Hedera Hashgraph gibi da\u011f\u0131t\u0131k defter teknolojilerinde, her i\u015flemin ve mesaj\u0131n ge\u00e7erlili\u011fini ve kayna\u011f\u0131n\u0131 do\u011frulamak i\u00e7in dijital imzalar vazge\u00e7ilmezdir.<\/p>\n<h3>Kriptografik \u0130mzalar Neden \u00d6nemli?<\/h3>\n<p>Kriptografik imzalar, bir mesaj\u0131n veya verinin belirli bir \u00f6zel anahtar taraf\u0131ndan imzaland\u0131\u011f\u0131n\u0131 ve bu imzan\u0131n ilgili a\u00e7\u0131k anahtar kullan\u0131larak do\u011frulanabilece\u011fini kan\u0131tlar. Bu, mesaj\u0131n g\u00f6ndericisinin kimli\u011fini do\u011frular (kimlik do\u011frulama), mesaj\u0131n imzaland\u0131ktan sonra de\u011fi\u015ftirilmedi\u011fini garanti eder (veri b\u00fct\u00fcnl\u00fc\u011f\u00fc) ve g\u00f6ndericinin mesaj\u0131 g\u00f6nderdi\u011fini inkar etmesini engeller (inkar edilemezlik). Hedera ekosisteminde, her i\u015flem (token transferi, ak\u0131ll\u0131 s\u00f6zle\u015fme \u00e7a\u011fr\u0131s\u0131 vb.) ilgili \u00f6zel anahtarla imzalanmal\u0131 ve a\u011f taraf\u0131ndan do\u011frulanmal\u0131d\u0131r.<\/p>\n<h3>Hedera Hashgraph ve G\u00fcven Modeli<\/h3>\n<p>Hedera Hashgraph, geleneksel blok zincirlerinden farkl\u0131 olarak, hashgraph konsens\u00fcs algoritmas\u0131n\u0131 kullan\u0131r. Bu algoritma, y\u00fcksek i\u015flem hacmi, d\u00fc\u015f\u00fck gecikme s\u00fcresi ve adil s\u0131ralama sunar. G\u00fcven modeli, a\u011fdaki d\u00fc\u011f\u00fcmlerin ve kullan\u0131c\u0131lar\u0131n i\u015flemlerini dijital imzalar arac\u0131l\u0131\u011f\u0131yla g\u00fcvence alt\u0131na almas\u0131na dayan\u0131r. Bir i\u015flem a\u011fa g\u00f6nderildi\u011finde, \u00f6nce imzas\u0131 do\u011frulan\u0131r. Ge\u00e7ersiz imzal\u0131 i\u015flemler reddedilir, bu da a\u011f\u0131n b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc korur.<\/p>\n<h3>Hedera&#8217;da \u0130mza T\u00fcrleri (Ed25519, ECDSA)<\/h3>\n<p>Hedera, iki ana kriptografik imza algoritmas\u0131n\u0131 destekler:<\/p>\n<ul>\n<li><b>Ed25519:<\/b> Bu, h\u0131zl\u0131 ve g\u00fcvenli bir dijital imza algoritmas\u0131d\u0131r. Hedera&#8217;n\u0131n varsay\u0131lan ve \u00f6nerilen anahtar t\u00fcr\u00fcd\u00fcr. \u00d6zellikle performans ve g\u00fcvenlik a\u00e7\u0131s\u0131ndan avantajlar sunar.<\/li>\n<li><b>ECDSA (secp256k1):<\/b> Ethereum ve Bitcoin gibi di\u011fer pop\u00fcler blok zincirlerinde yayg\u0131n olarak kullan\u0131lan bir algoritmad\u0131r. Hedera, bu anahtar t\u00fcr\u00fcn\u00fc de destekleyerek farkl\u0131 ekosistemlerden ge\u00e7i\u015fi kolayla\u015ft\u0131r\u0131r.<\/li>\n<\/ul>\n<p>Do\u011frulama s\u00fcrecinde, kullan\u0131lan anahtar t\u00fcr\u00fcne uygun kriptografik fonksiyonlar\u0131n kullan\u0131lmas\u0131 hayati \u00f6nem ta\u015f\u0131r.<\/p>\n<h2>Mesaj \u0130mzalama S\u00fcreci: Y\u00fczeyin Alt\u0131nda Ne Var?<\/h2>\n<p>Hedera&#8217;da bir mesaj\u0131 veya i\u015flemi imzalamak, sadece \u00f6zel anahtar\u0131n\u0131z\u0131 kullan\u0131p bir &#8220;imza&#8221; olu\u015fturmaktan daha fazlas\u0131n\u0131 i\u00e7erir. \u00d6zellikle d\u0131\u015far\u0131dan veya farkl\u0131 dillerde do\u011frulama yapmaya \u00e7al\u0131\u015f\u0131rken, imzalama s\u00fcrecinin detaylar\u0131n\u0131 anlamak kritik \u00f6neme sahiptir.<\/p>\n<h3>Standart \u0130mzalama Ak\u0131\u015f\u0131<\/h3>\n<p>Genel olarak, bir dijital imza olu\u015fturma ak\u0131\u015f\u0131 \u015fu ad\u0131mlar\u0131 takip eder:<\/p>\n<ol>\n<li>\u0130mzalanacak veri (mesaj veya i\u015flem) haz\u0131rlan\u0131r.<\/li>\n<li>Bu veri, kriptografik bir hash fonksiyonu (\u00f6rne\u011fin SHA-512) kullan\u0131larak hashlenir. Bu, verinin sabit boyutlu bir \u00f6zetini olu\u015fturur.<\/li>\n<li>Olu\u015fturulan hash \u00f6zeti, \u00f6zel anahtar kullan\u0131larak imzalan\u0131r.<\/li>\n<li>Sonu\u00e7 olarak, orijinal verinin bir imza kan\u0131t\u0131 elde edilir.<\/li>\n<\/ol>\n<p>Hedera SDK&#8217;lar\u0131 bu s\u00fcreci genellikle soyutlar ve geli\u015ftiricilerin do\u011frudan hashleme veya imzalama detaylar\u0131yla u\u011fra\u015fmas\u0131na gerek kalmaz. Ancak, do\u011frulama taraf\u0131nda bu soyutlaman\u0131n ne anlama geldi\u011fini bilmek \u00f6nemlidir.<\/p>\n<h3>Hash Algoritmas\u0131 Se\u00e7imi<\/h3>\n<p>Hedera, genellikle SHA-512 hash algoritmas\u0131n\u0131 kullan\u0131r. Bu, imzalanacak verinin sabit boyutlu bir \u00f6zetini (hash&#8217;ini) olu\u015fturur. G\u00fcvenli bir hash algoritmas\u0131 se\u00e7imi, imzalanan verinin de\u011fi\u015ftirilememesi ve \u00e7ak\u0131\u015fma sald\u0131r\u0131lar\u0131na kar\u015f\u0131 korunmas\u0131 i\u00e7in elzemdir. Do\u011frulama yaparken, imza olu\u015fturulurken kullan\u0131lan hash algoritmas\u0131yla ayn\u0131 algoritman\u0131n kullan\u0131ld\u0131\u011f\u0131ndan emin olunmal\u0131d\u0131r.<\/p>\n<h3>&#8220;\u0130mza Payload&#8221;\u0131n\u0131n Olu\u015fturulmas\u0131: \u0130\u015fte S\u0131r Burada!<\/h3>\n<p>Hedera&#8217;da mesaj imza do\u011frulamas\u0131n\u0131n &#8220;gizli&#8221; detay\u0131, imza payload&#8217;\u0131n\u0131n (yani hash&#8217;i al\u0131nan ve ard\u0131ndan imzalanan verinin) tam olarak ne oldu\u011fudur. Geli\u015ftiriciler genellikle sadece &#8220;mesaj\u0131&#8221; imzalad\u0131klar\u0131n\u0131 d\u00fc\u015f\u00fcn\u00fcrler. Ancak, Hedera SDK&#8217;lar\u0131 ve a\u011f\u0131n kendisi, farkl\u0131 senaryolarda farkl\u0131 veri yap\u0131lar\u0131n\u0131 imzalar:<\/p>\n<ul>\n<li><b>Hedera \u0130\u015flemleri (Transactions):<\/b> Bir Hedera i\u015flemi (\u00f6rne\u011fin <code>TransferTransaction<\/code>, <code>ContractCallTransaction<\/code>), asl\u0131nda bir Protobuf mesaj\u0131d\u0131r. SDK&#8217;lar, bu Protobuf mesaj\u0131n\u0131n ikili (binary) serile\u015ftirilmi\u015f halini (yani <code>TransactionBody<\/code>&#8216;nin byte dizisini) hashler ve imzalar.<\/li>\n<li><b>Arbitrary Mesajlar (Rastgele Mesajlar):<\/b> Kullan\u0131c\u0131lar\u0131n rastgele metin veya veri imzalamas\u0131 gerekti\u011finde (\u00f6rne\u011fin bir web sitesine giri\u015f yapmak i\u00e7in), Hedera SDK&#8217;lar\u0131 genellikle sa\u011flanan mesaj\u0131n ham byte dizisini (genellikle UTF-8 kodlamal\u0131) do\u011frudan hashler ve imzalar. Burada herhangi bir ek Protobuf serile\u015ftirmesi veya metadata eklenmez.<\/li>\n<\/ul>\n<p>&#8220;S\u0131r&#8221;, bu iki senaryo aras\u0131ndaki fark\u0131 ve \u00f6zellikle rastgele mesaj imzalarken hangi byte dizisinin tam olarak imzaland\u0131\u011f\u0131n\u0131 do\u011fru bir \u015fekilde yeniden olu\u015fturabilmektir.<\/p>\n<h2>&#8220;Bilinmeyen S\u0131r&#8221;: \u0130mza Verisinin Tam Yap\u0131s\u0131<\/h2>\n<p>Hedera mesaj imza do\u011frulamas\u0131nda, &#8220;bilinmeyen s\u0131r&#8221; tam olarak hangi byte dizisinin imzaland\u0131\u011f\u0131n\u0131 ve bu dizinin nas\u0131l olu\u015fturuldu\u011funu anlamakt\u0131r. Bu, \u00f6zellikle off-chain do\u011frulama yaparken veya Hedera SDK&#8217;lar\u0131n\u0131 kullanmadan kendi imzalama\/do\u011frulama mant\u0131\u011f\u0131n\u0131z\u0131 uygularken kritik hale gelir.<\/p>\n<h3>Hedera SDK&#8217;lar\u0131n\u0131n Mesaj\u0131 Nas\u0131l \u0130\u015fledi\u011fi<\/h3>\n<p>Hedera SDK&#8217;lar\u0131 (JavaScript, Java, Go), genellikle geli\u015ftiriciler i\u00e7in bu karma\u015f\u0131kl\u0131\u011f\u0131 gizler. \u00d6rne\u011fin, bir JavaScript SDK&#8217;s\u0131nda <code>new MessageSignTransaction().setMessage(\"Merhaba D\u00fcnya\").sign(privateKey)<\/code> gibi bir kullan\u0131m, arka planda &#8220;Merhaba D\u00fcnya&#8221; metninin UTF-8 byte dizisini al\u0131r, bunu bir <code>SignMessageTransaction<\/code>&#8216;\u0131n par\u00e7as\u0131 olarak serile\u015ftirir ve ard\u0131ndan bu serile\u015ftirilmi\u015f transaction body&#8217;yi imzalar. Ancak, e\u011fer bir <code>privateKey.sign(messageBytes)<\/code> fonksiyonu kullan\u0131l\u0131yorsa, bu genellikle sadece <code>messageBytes<\/code>&#8216;\u0131 do\u011frudan imzalar. Bu ayr\u0131m, do\u011frulama yaparken hangi senaryoda oldu\u011funuzu anlaman\u0131z\u0131 gerektirir.<\/p>\n<h3>Arbitrary Mesajlar vs. Hedera \u0130\u015flemleri: Fark\u0131 Anlamak<\/h3>\n<ul>\n<li><b>Hedera \u0130\u015flemleri:<\/b> A\u011f \u00fczerinde y\u00fcr\u00fct\u00fclen her \u015fey bir i\u015flemdir. Bu i\u015flemler, Protobuf format\u0131nda tan\u0131mlan\u0131r ve imzalanmadan \u00f6nce bu formatta ikili olarak serile\u015ftirilir. Do\u011frulama yaparken, orijinal i\u015flem Protobuf yap\u0131s\u0131n\u0131 yeniden olu\u015fturup, <code>TransactionBody<\/code>&#8216;yi ikili olarak serile\u015ftirmeli ve bu byte dizisinin hash&#8217;ini do\u011frulamal\u0131s\u0131n\u0131z.<\/li>\n<li><b>Arbitrary Mesajlar:<\/b> Bu, bir kullan\u0131c\u0131n\u0131n belirli bir metni veya veriyi kendi Hedera anahtar\u0131yla imzalamak istedi\u011fi durumdur. \u00d6rne\u011fin, bir web sitesinde kimli\u011fini do\u011frulamak veya bir oylama mesaj\u0131n\u0131 imzalamak. Bu durumda, &#8220;s\u0131r&#8221;, mesaj\u0131n *tam olarak hangi byte dizisi* olarak kabul edildi\u011fidir. Genellikle, bu, mesaj\u0131n UTF-8 kodlamal\u0131 byte dizisidir ve herhangi bir ek Hedera i\u015flemi metadata&#8217;s\u0131 i\u00e7ermez.<\/li>\n<\/ul>\n<p>Yanl\u0131\u015f byte dizisini hashlemek, her zaman ge\u00e7ersiz bir do\u011frulama sonucuna yol a\u00e7acakt\u0131r.<\/p>\n<h3>Do\u011fru Byte Dizisini Olu\u015fturma: Kod \u00d6rnekleri ve P\u00fcf Noktalar\u0131<\/h3>\n<p>Arbitrary bir mesaj\u0131n (\u00f6rne\u011fin &#8220;Merhaba D\u00fcnya&#8221;) Hedera anahtar\u0131yla imzaland\u0131\u011f\u0131n\u0131 varsayal\u0131m. Do\u011frulama yapmak i\u00e7in, imzalanan mesaj\u0131n tam olarak hangi byte dizisi oldu\u011funu bilmelisiniz. \u00c7o\u011fu durumda, bu, mesaj\u0131n UTF-8 kodlamas\u0131d\u0131r.<\/p>\n<pre><code class=\"language-javascript\">\/\/ JavaScript \u00d6rne\u011fi (\u0130mzalama taraf\u0131 - SDK ile)\nimport { PrivateKey, Client } from \"@hashgraph\/sdk\";\n\nasync function signArbitraryMessage(messageString, privateKey) {\n    const client = Client.forTestnet(); \/\/ veya mainnet\n    \/\/ \u00d6zel anahtar\u0131n\u0131z\u0131 y\u00fckleyin\n    const signerPrivateKey = PrivateKey.fromString(privateKey);\n\n    \/\/ Mesaj\u0131 do\u011frudan byte dizisi olarak imzala\n    \/\/ Bu, genellikle SDK'n\u0131n d\u00fc\u015f\u00fck seviyeli imzalama fonksiyonlar\u0131 veya\n    \/\/ bir wallet uygulamas\u0131 taraf\u0131ndan yap\u0131l\u0131r.\n    const messageBytes = Buffer.from(messageString, 'utf8');\n    const signature = signerPrivateKey.sign(messageBytes);\n\n    return { messageBytes, signature: Buffer.from(signature).toString('hex') };\n}\n\n\/\/ Do\u011frulama taraf\u0131 (off-chain veya ba\u015fka bir sistemde)\nimport { PublicKey } from \"@hashgraph\/sdk\";\n\nfunction verifyArbitraryMessage(messageString, signatureHex, publicKeyString) {\n    const messageBytes = Buffer.from(messageString, 'utf8');\n    const signatureBytes = Buffer.from(signatureHex, 'hex');\n    const publicKey = PublicKey.fromString(publicKeyString);\n\n    \/\/ Public key kullanarak imzay\u0131 do\u011frula\n    const isValid = publicKey.verify(messageBytes, signatureBytes);\n    return isValid;\n}\n\n\/\/ Kullan\u0131m \u00d6rne\u011fi\n\/\/ const myPrivateKey = PrivateKey.generateEd25519();\n\/\/ const myPublicKey = myPrivateKey.publicKey;\n\/\/ const messageToSign = \"Bu benim \u00f6zel mesaj\u0131m.\";\n\n\/\/ const { messageBytes, signature } = await signArbitraryMessage(messageToSign, myPrivateKey.toString());\n\/\/ const isValid = verifyArbitraryMessage(messageToSign, signature, myPublicKey.toString());\n\/\/ console.log(\"\u0130mza ge\u00e7erli mi?\", isValid);<\/pre>\n<p><\/code><br \/>\n<b>P\u00fcf Noktalar\u0131:<\/b><\/p>\n<ul>\n<li><b>Encoding:<\/b> Her zaman mesaj\u0131n hangi karakter kodlamas\u0131yla (genellikle UTF-8) byte dizisine d\u00f6n\u00fc\u015ft\u00fcr\u00fcld\u00fc\u011f\u00fcn\u00fc do\u011frulay\u0131n. Tutars\u0131zl\u0131klar, imzan\u0131n ge\u00e7ersiz olmas\u0131na neden olur.<\/li>\n<li><b>Ek Veri:<\/b> \u0130mzalama s\u0131ras\u0131nda mesaja herhangi bir ek veri (nonce, timestamp, transaction ID vb.) eklenip eklenmedi\u011fini kontrol edin. E\u011fer eklendiyse, do\u011frulama s\u0131ras\u0131nda bu ek veriyi de orijinal mesajla birlikte ayn\u0131 s\u0131rada ve formatta yeniden olu\u015fturmal\u0131s\u0131n\u0131z.<\/li>\n<li><b>Canonicalization:<\/b> Baz\u0131 sistemler, imzalamadan \u00f6nce veriyi belirli bir \"kanonik\" forma sokar (\u00f6rne\u011fin JSON nesnelerini belirli bir anahtar s\u0131ralamas\u0131na g\u00f6re d\u00fczenlemek). Hedera'n\u0131n arbitrary mesaj imzalamas\u0131nda bu genellikle gerekli de\u011fildir, ancak karma\u015f\u0131k veri yap\u0131lar\u0131n\u0131 imzalarken g\u00f6z \u00f6n\u00fcnde bulundurulmal\u0131d\u0131r.<\/li>\n<\/ul>\n<h2>\u0130mza Do\u011frulama: Ad\u0131m Ad\u0131m Rehber<\/h2>\n<p>Do\u011fru byte dizisini elde ettikten sonra, Hedera imzas\u0131n\u0131 do\u011frulamak standart kriptografik ad\u0131mlar\u0131 i\u00e7erir.<\/p>\n<h3>Genel Do\u011frulama Mekanizmas\u0131<\/h3>\n<p>Bir dijital imzan\u0131n do\u011frulanmas\u0131 \u015fu ad\u0131mlar\u0131 i\u00e7erir:<\/p>\n<ol>\n<li>Orijinal mesaj\u0131n (veya imzalanan verinin) byte dizisi elde edilir.<\/li>\n<li>Bu byte dizisi, imza olu\u015fturulurken kullan\u0131lan ayn\u0131 hash algoritmas\u0131yla hashlenir.<\/li>\n<li>\u0130mza, imzalayan\u0131n a\u00e7\u0131k anahtar\u0131 ve orijinal hash \u00f6zeti kullan\u0131larak do\u011frulan\u0131r.<\/li>\n<li>Do\u011frulama ba\u015far\u0131l\u0131 olursa, imza ge\u00e7erlidir; aksi takdirde ge\u00e7ersizdir.<\/li>\n<\/ol>\n<p>Hedera SDK'lar\u0131 bu ad\u0131mlar\u0131 <code>publicKey.verify(messageBytes, signatureBytes)<\/code> gibi basit bir fonksiyon \u00e7a\u011fr\u0131s\u0131yla ger\u00e7ekle\u015ftirir.<\/p>\n<h3>Public Key ve \u0130mza E\u015fle\u015fmesi<\/h3>\n<p>Do\u011frulama i\u00e7in, imza olu\u015fturulurken kullan\u0131lan \u00f6zel anahtara kar\u015f\u0131l\u0131k gelen do\u011fru a\u00e7\u0131k anahtara sahip olman\u0131z gerekir. A\u00e7\u0131k anahtar ve imza, ayn\u0131 kriptografik algoritmay\u0131 (Ed25519 veya ECDSA) ve ayn\u0131 hash fonksiyonunu kullanarak e\u015fle\u015fmelidir. Hedera'da a\u00e7\u0131k anahtarlar genellikle bir <code>0x<\/code> \u00f6nekiyle veya base64 kodlamas\u0131yla temsil edilir.<\/p>\n<h3>Kendi Do\u011frulama Fonksiyonunuzu Yazmak<\/h3>\n<p>E\u011fer Hedera SDK'lar\u0131n\u0131 kullanmadan kendi do\u011frulama mant\u0131\u011f\u0131n\u0131z\u0131 uygulamak istiyorsan\u0131z (\u00f6rne\u011fin farkl\u0131 bir programlama dilinde veya k\u0131s\u0131tl\u0131 bir ortamda), temel kriptografik k\u00fct\u00fcphaneleri kullanman\u0131z gerekir.<\/p>\n<pre><code class=\"language-python\"># Python \u00d6rne\u011fi (Ed25519 i\u00e7in)\nfrom nacl.signing import VerifyKey\nfrom nacl.exceptions import BadSignatureError\nimport binascii\n\ndef verify_hedera_ed25519_signature(message_string: str, signature_hex: str, public_key_hex: str) -> bool:\n    try:\n        # Mesaj\u0131 UTF-8 byte dizisine d\u00f6n\u00fc\u015ft\u00fcr\n        message_bytes = message_string.encode('utf-8')\n\n        # \u0130mza ve public key'i hex'ten byte'a d\u00f6n\u00fc\u015ft\u00fcr\n        signature_bytes = binascii.unhexlify(signature_hex)\n        public_key_bytes = binascii.unhexlify(public_key_hex)\n\n        # VerifyKey nesnesi olu\u015ftur\n        verify_key = VerifyKey(public_key_bytes)\n\n        # \u0130mza do\u011frulamay\u0131 dene\n        verify_key.verify(message_bytes, signature_bytes)\n        return True\n    except BadSignatureError:\n        return False\n    except Exception as e:\n        print(f\"Hata olu\u015ftu: {e}\")\n        return False\n\n# Kullan\u0131m \u00d6rne\u011fi (Python)\n# from nacl.signing import SigningKey\n# private_key_seed = bytes.fromhex(\"...\") # 32 byte seed\n# signing_key = SigningKey(private_key_seed)\n# public_key_hex = signing_key.verify_key.encode(encoder=HexEncoder).decode('utf-8')\n# message = \"Merhaba Python!\"\n# signed = signing_key.sign(message.encode('utf-8'))\n# signature_hex = signed.signature.hex()\n\n# is_valid = verify_hedera_ed25519_signature(message, signature_hex, public_key_hex)\n# print(f\"Python'da imza ge\u00e7erli mi? {is_valid}\")<\/pre>\n<p><\/code><br \/>\nBu \u00f6rnek, <code>PyNaCl<\/code> k\u00fct\u00fcphanesini kullanarak Ed25519 imzas\u0131n\u0131 do\u011frular. ECDSA i\u00e7in farkl\u0131 bir k\u00fct\u00fcphane (\u00f6rne\u011fin <code>ecdsa<\/code> veya <code>fastecdsa<\/code>) ve ilgili fonksiyonlar kullan\u0131lmal\u0131d\u0131r. \u00d6nemli olan, mesaj\u0131n byte dizisi, imza ve a\u00e7\u0131k anahtar\u0131n do\u011fru formatlarda sa\u011flanmas\u0131d\u0131r.<\/p>\n<h2>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Hatalar ve \u00c7\u00f6z\u00fcmleri<\/h2>\n<p>Hedera mesaj imza do\u011frulamas\u0131nda kar\u015f\u0131la\u015f\u0131lan yayg\u0131n sorunlar genellikle \"bilinmeyen s\u0131r\" ile ilgilidir.<\/p>\n<h3>Yanl\u0131\u015f Hashleme<\/h3>\n<p>En yayg\u0131n hata, imzalanan verinin hash'ini al\u0131rken yanl\u0131\u015f hash algoritmas\u0131 kullanmak veya hash'i al\u0131nacak veriyi yanl\u0131\u015f haz\u0131rlamakt\u0131r.<br \/>\n<b>\u00c7\u00f6z\u00fcm:<\/b> Hedera'n\u0131n genellikle SHA-512 kulland\u0131\u011f\u0131n\u0131 unutmay\u0131n. En \u00f6nemlisi, imzalama s\u0131ras\u0131nda hangi byte dizisinin hash'inin al\u0131nd\u0131\u011f\u0131n\u0131 tam olarak anlamak ve do\u011frulama s\u0131ras\u0131nda ayn\u0131 byte dizisini kullanmakt\u0131r.<\/p>\n<h3>Eksik veya Fazla Veri Ekleme<\/h3>\n<p>\u0130mzalama s\u0131ras\u0131nda mesaja eklenen veya \u00e7\u0131kar\u0131lan herhangi bir ek bilgi (timestamp, nonce, i\u015flem ID'si vb.) do\u011frulama s\u0131ras\u0131nda tam olarak ayn\u0131 \u015fekilde ele al\u0131nmazsa, imza ge\u00e7ersiz olacakt\u0131r.<br \/>\n<b>\u00c7\u00f6z\u00fcm:<\/b> \u0130mzalama protokol\u00fcn\u00fcz\u00fc standartla\u015ft\u0131r\u0131n. E\u011fer ek metadata imzalan\u0131yorsa, bu metadatay\u0131 da do\u011frulama s\u0131ras\u0131nda orijinal mesajla birle\u015ftirerek ayn\u0131 byte dizisini olu\u015fturun.<\/p>\n<h3>Encoding Sorunlar\u0131<\/h3>\n<p>Karakter kodlamas\u0131 (UTF-8, ASCII vb.) tutars\u0131zl\u0131klar\u0131, mesaj\u0131n byte dizisini farkl\u0131 \u015fekillerde olu\u015fturur ve bu da imzan\u0131n ge\u00e7ersiz olmas\u0131na neden olur.<br \/>\n<b>\u00c7\u00f6z\u00fcm:<\/b> Her zaman tutarl\u0131 bir kodlama kullan\u0131n, genellikle UTF-8 en iyi se\u00e7imdir. Hem imzalayan hem de do\u011frulayan taraf\u0131n ayn\u0131 kodlamay\u0131 kulland\u0131\u011f\u0131ndan emin olun.<\/p>\n<h2>G\u00fcvenlik \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar<\/h2>\n<p>Sa\u011flam bir imza do\u011frulama mekanizmas\u0131, uygulaman\u0131z\u0131n g\u00fcvenli\u011fi i\u00e7in temeldir.<\/p>\n<h3>Replay Sald\u0131r\u0131lar\u0131na Kar\u015f\u0131 Korunma<\/h3>\n<p>Bir sald\u0131rgan, ge\u00e7erli bir imzay\u0131 kopyalay\u0131p tekrar g\u00f6ndererek \"replay\" sald\u0131r\u0131s\u0131 yapabilir.<br \/>\n<b>\u00c7\u00f6z\u00fcm:<\/b> \u0130mzalad\u0131\u011f\u0131n\u0131z mesajlara tek kullan\u0131ml\u0131k \"nonce\" de\u011ferleri, zaman damgalar\u0131 veya i\u015flem kimlikleri gibi benzersiz tan\u0131mlay\u0131c\u0131lar ekleyin. Bu ek veriyi de imza payload'\u0131na dahil edin ve do\u011frulama s\u0131ras\u0131nda bu de\u011ferlerin ge\u00e7erlili\u011fini kontrol edin.<\/p>\n<h3>Anahtar Y\u00f6netimi<\/h3>\n<p>\u00d6zel anahtarlar\u0131n\u0131z\u0131n g\u00fcvenli\u011fi, t\u00fcm sisteminizin g\u00fcvenli\u011fi i\u00e7in hayati \u00f6neme sahiptir.<br \/>\n<b>\u00c7\u00f6z\u00fcm:<\/b> \u00d6zel anahtarlar\u0131 asla a\u00e7\u0131kta b\u0131rakmay\u0131n. Donan\u0131m c\u00fczdanlar\u0131 (Ledger, Trezor) veya g\u00fcvenli anahtar y\u00f6netim sistemleri kullan\u0131n. A\u00e7\u0131k anahtarlar\u0131n\u0131z\u0131 g\u00fcvenilir bir \u015fekilde yay\u0131nlay\u0131n.<\/p>\n<h3>SDK G\u00fcncellemelerini Takip Etme<\/h3>\n<p>Hedera SDK'lar\u0131 s\u00fcrekli geli\u015fmektedir. \u0130mzalama ve do\u011frulama mekanizmalar\u0131nda yap\u0131lan g\u00fcncellemeler, yeni \u00f6zellikler veya g\u00fcvenlik iyile\u015ftirmeleri getirebilir.<br \/>\n<b>\u00c7\u00f6z\u00fcm:<\/b> SDK'lar\u0131n\u0131z\u0131 d\u00fczenli olarak g\u00fcncelleyin ve de\u011fi\u015fiklik kay\u0131tlar\u0131n\u0131 (changelog) takip edin. Bu, potansiyel uyumluluk sorunlar\u0131n\u0131 \u00f6nlemenize ve en iyi g\u00fcvenlik uygulamalar\u0131n\u0131 s\u00fcrd\u00fcrmenize yard\u0131mc\u0131 olur.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Hedera mesaj imza do\u011frulamas\u0131n\u0131n \"belgelenmemi\u015f s\u0131rr\u0131\", asl\u0131nda imzalanan verinin tam olarak hangi byte dizisi oldu\u011funu anlamaktan ge\u00e7er. Hedera SDK'lar\u0131, i\u015flemleri ve rastgele mesajlar\u0131 farkl\u0131 \u015fekillerde i\u015fleyerek imza payload'lar\u0131n\u0131 olu\u015fturur. Geli\u015ftiricilerin, \u00f6zellikle off-chain do\u011frulama yaparken veya \u00f6zel entegrasyonlar geli\u015ftirirken, bu fark\u0131 kavramas\u0131 ve mesaj\u0131n do\u011fru byte dizisini (genellikle UTF-8 kodlamal\u0131) titizlikle yeniden olu\u015fturmas\u0131 kritik \u00f6neme sahiptir. Do\u011fru encoding, ek veri y\u00f6netimi ve tutarl\u0131 hash algoritmas\u0131 kullan\u0131m\u0131, Hedera ekosisteminde g\u00fcvenilir ve sa\u011flam imza do\u011frulama mekanizmalar\u0131 olu\u015fturman\u0131n anahtar\u0131d\u0131r. Bu detaylara dikkat ederek, uygulamalar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini art\u0131rabilir ve kullan\u0131c\u0131lar\u0131n\u0131za sorunsuz bir deneyim sunabilirsiniz.<\/p>\n<h2>SSS (S\u0131k Sorulan Sorular)<\/h2>\n<h3>1. Hedera'da bir mesaj\u0131 imzalarken hangi hash algoritmas\u0131 kullan\u0131l\u0131r?<\/h3>\n<p>Genellikle SHA-512 hash algoritmas\u0131 kullan\u0131l\u0131r. Ancak, \u00f6zellikle Hedera i\u015flemleri i\u00e7in, i\u015flemin Protobuf serile\u015ftirilmi\u015f body'si hashlenir. Rastgele mesajlar i\u00e7in ise mesaj\u0131n ham byte dizisi (genellikle UTF-8) hashlenir.<\/p>\n<h3>2. Neden Hedera SDK's\u0131n\u0131n d\u0131\u015f\u0131ndan imza do\u011frulamak bu kadar zor olabiliyor?<\/h3>\n<p>Zorluk, SDK'lar\u0131n imzalama s\u00fcrecini soyutlamas\u0131ndan kaynaklan\u0131r. SDK, imzalayaca\u011f\u0131n\u0131z veriyi (mesaj veya i\u015flem) belirli bir formata d\u00f6n\u00fc\u015ft\u00fcr\u00fcr ve ard\u0131ndan imzalar. SDK d\u0131\u015f\u0131ndan do\u011frulama yaparken, bu \"belirli format\u0131\" (yani imzalanan byte dizisini) manuel olarak do\u011fru bir \u015fekilde yeniden olu\u015fturman\u0131z gerekir.<\/p>\n<h3>3. \"Arbitrary mesaj\" ile \"Hedera i\u015flemi\" aras\u0131ndaki fark nedir?<\/h3>\n<p>\"Hedera i\u015flemi\", token transferi, ak\u0131ll\u0131 s\u00f6zle\u015fme \u00e7a\u011fr\u0131s\u0131 gibi Hedera a\u011f\u0131 \u00fczerinde y\u00fcr\u00fct\u00fclen, Protobuf ile tan\u0131mlanm\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir eylemdir. \"Arbitrary mesaj\" ise, a\u011f \u00fczerinde bir i\u015flem olarak kaydedilmeyen, rastgele bir metin veya veri par\u00e7as\u0131d\u0131r ve genellikle bir kullan\u0131c\u0131n\u0131n kimli\u011fini do\u011frulamak veya bir bildirimi imzalamak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h3>4. \u0130mza do\u011frulama hatas\u0131 al\u0131yorum, ilk olarak neyi kontrol etmeliyim?<\/h3>\n<p>\u0130lk olarak, imzalanan mesaj\u0131n byte dizisinin (encoding dahil) hem imzalama hem de do\u011frulama taraf\u0131nda tam olarak ayn\u0131 oldu\u011fundan emin olun. Ard\u0131ndan, do\u011fru a\u00e7\u0131k anahtar\u0131 kulland\u0131\u011f\u0131n\u0131z\u0131 ve imza ile a\u00e7\u0131k anahtar\u0131n ayn\u0131 kriptografik algoritmay\u0131 (Ed25519 veya ECDSA) kulland\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n.<\/p>\n","protected":false},"excerpt":{"rendered":"Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r\nHedera Hashgraph, y\u00fcksek performansl\u0131, g\u00fcvenli ve adil bir da\u011f\u0131t\u0131k defter t&#8230;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-39447","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r\" \/>\n<meta property=\"og:description\" content=\"Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r Hedera Hashgraph, y\u00fcksek performansl\u0131, g\u00fcvenli ve adil bir da\u011f\u0131t\u0131k defter t...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-21T13:30:47+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r\",\"datePublished\":\"2026-02-21T13:30:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/\"},\"wordCount\":2501,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/\",\"name\":\"Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-21T13:30:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/","og_locale":"tr_TR","og_type":"article","og_title":"Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r","og_description":"Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r Hedera Hashgraph, y\u00fcksek performansl\u0131, g\u00fcvenli ve adil bir da\u011f\u0131t\u0131k defter t...","og_url":"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-21T13:30:47+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"14 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r","datePublished":"2026-02-21T13:30:47+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/"},"wordCount":2501,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/","url":"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/","name":"Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-21T13:30:47+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/hedera-mesaj-imza-dogrulamasinin-gizli-detaylari-bilinmeyen-bir-sir\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Hedera Mesaj \u0130mza Do\u011frulamas\u0131n\u0131n Gizli Detaylar\u0131: Bilinmeyen Bir S\u0131r"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39447","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=39447"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39447\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39447"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39447"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39447"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}