Skip to content

YigitCahit/Hashing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Basit Hashing Araçları

Bu depo, özel bir 256 bit durum kullanan chain_hash_64 fonksiyonunu ve bu fonksiyonun üstüne kurulu yardımcı araçları içerir. Algoritma, girdinin her baytını XOR, toplama, çarpma ve rotl (bitsel sola döndürme) işlemleriyle karıştırır, ardından 32 baytlık bir hexadecimal çıktı üretir.

Python içinden kullanım

from hash import chain_hash_64

text = "Hello World"
digest = chain_hash_64(text)

print(f"Hash: {digest}")

Komut satırı yardımcıları

Depoda iki küçük CLI bulunuyor:

  • app.py: Konsola girilen metnin hash değerini üretir.
  • file_hash.py: Belirtilen dosyanın hash değerini hesaplar.

Çalıştırmak için:

python app.py
python file_hash.py

Blockchain benzeri metin zinciri

text_chain.py, her metin girdisini bir önceki bloğun hash'i ile birbirine bağlayarak basit bir zincir dosyası (text_chain.hashing) tutar. Veriler özel binary formatta saklanır.

Dosya Formatı (.hashing)

Zincir verileri JSON yerine özel bir binary formatta saklanır:

Header (13 byte):

  • Magic: HASHING (7 byte)
  • Versiyon: 1 (2 byte)
  • Blok sayısı (4 byte)

Her Blok:

  • Meta: index (4 byte), timestamp uzunluğu (2 byte), text uzunluğu (2 byte)
  • Timestamp (değişken uzunluk, UTF-8)
  • Text (değişken uzunluk, UTF-8)
  • prev_hash (32 byte)
  • hash (32 byte)

Blok Alanları

  • index: Sıra numarası
  • timestamp: UTC ISO zaman damgası
  • text: Saklanmak istenen metin
  • prev_hash: Bir önceki bloğun hash değeri
  • hash: Bloğun kendi hash değeri (metin + metadata üzerinden hesaplanır)

Kullanım

python text_chain.py reset    # Yeni genesis bloğu oluştur
python text_chain.py add "Merhaba dünya"  # Zincire yeni metin ekle
python text_chain.py list     # Zincirdeki blokları sırayla göster
python text_chain.py verify   # Zincir bütünlüğünü kontrol et

reset komutu zinciri sıfırlar, add zincirin sonuna yeni bir blok ekler, list özet bir çıktı verir, verify ise hash ve prev_hash alanlarını yeniden hesaplayarak zincirin bozulmadığını doğrular.

Dosya Okuma/Yazma

file.py modülü binary format işlemlerini sağlar:

from file import save_hashing_format, read_hashing_format

# Zinciri .hashing dosyasına kaydet
save_hashing_format(chain_data, "dosya.hashing")

# .hashing dosyasından zinciri oku
chain = read_hashing_format("dosya.hashing")

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages