Metin Entropi Hesaplayıcı
Herhangi bir metnin Shannon entropisini ve karakter başına bit sayısını hesaplayın.
Entropiyi hesaplamak için yazmaya başlayın.
Bu araç hakkında
Shannon entropisi, bir mesajdaki ortalama bilgi içeriğinin veya rastgeleliğinin matematiksel bir ölçüsü olup, bit cinsinden hesaplanır. Bu hesaplayıcıya metin yapıştırdığınızda, karakterlerin frekans dağılımına dayanarak entropiyi hesaplar ve metnin ne kadar öngörülemez veya düzensiz olduğunu ortaya çıkarır. Daha yüksek entropi, karakter kullanımında daha fazla çeşitliliği gösterir; daha düşük entropi tekrarlayan desenleri önerir. Bu metrik, bilgi teorisi, kriptografi ve veri sıkıştırma için temel niteliktedir ve profesyonellerin verilerinin gücünü ve verimliliğini anlamalarına yardımcı olur.
Bu aracı kullanmak için, metninizi giriş alanına yapıştırın ve 'Hesapla'ya tıklayın. Hesaplayıcı anında Shannon entropi değerini (karakter başına bit) döndürür ve bireysel karakter frekans verilerini gösterir. Parolalar, belge örnekleri, kod parçacıkları veya doğal dil dahil olmak üzere herhangi bir metin üzerinde çalışır ve özel karakterleri, boşlukları ve Unicode'u işler. Bu, şifre kalitesini değerlendiren güvenlik analistleri, sıkıştırma potansiyelini değerlendiren mühendisler ve metin desenlerini inceleyen araştırmacılar için gerekli bir araç haline getirir.
Yüksek entropinin tek başına iyi şifreler garantilemediğini unutmayın; entropi dağılım çeşitliliğini yansıtır, gerçek rastgeleliği değil. Araç, gözlenenler temelinde her karakterin eşit derecede olası olduğunu (maksimum entropi) varsayar, bu nedenle gerçek kriptografik güvenlik ayrıca oluşturma yöntemine de bağlıdır. Büyük metinlerde, entropi doğal dil temeliyle stabilize olur (İngilizce için ~1,5 bit/karakter), daha küçük örnekler ise daha yüksek değişkenlik gösterebilir.
Sıkça Sorulan Sorular
Kod Uygulaması
import math
import re
def password_entropy(password: str) -> float:
"""Calculate Shannon entropy in bits for a password."""
pool = 0
if re.search(r"[a-z]", password): pool += 26
if re.search(r"[A-Z]", password): pool += 26
if re.search(r"[0-9]", password): pool += 10
if re.search(r"[^a-zA-Z0-9]", password): pool += 32 # common special chars
if pool == 0:
return 0.0
return len(password) * math.log2(pool)
def shannon_entropy(text: str) -> float:
"""True Shannon entropy based on character frequency."""
from collections import Counter
counts = Counter(text)
n = len(text)
return -sum((c / n) * math.log2(c / n) for c in counts.values())
# Examples
print(f"'password' entropy: {password_entropy('password'):.1f} bits") # ~37.6
print(f"'P@ssw0rd!' entropy: {password_entropy('P@ssw0rd!'):.1f} bits") # ~52.5
print(f"Random 16-char (all types): {password_entropy('aB3!xK9#mN2@pQ7^'):.1f} bits") # ~104.8
# Strength rating
def strength(bits: float) -> str:
if bits < 28: return "Very Weak"
if bits < 36: return "Weak"
if bits < 60: return "Reasonable"
if bits < 80: return "Strong"
return "Very Strong"Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.