Skip to content

DES / 3DES Şifreleme ve Şifre Çözme Aracı

Tarayıcınızda DES/3DES (2/3 anahtar) ECB/CBC ve PKCS#7 ile şifreleme/çözme. Anahtar uzunlukları (8/16/24 bayt) sıkı şekilde doğrulanır — asla sessizce kesilmez. Her sonuçla birlikte eşdeğer OpenSSL komutu. Hiçbir şey yüklenmez.

Takip Yok Tarayıcıda Çalışır Ücretsiz
Şifreleme tamamen tarayıcınızda çalışır — girdiğiniz anahtar ve veriler bu cihazdan asla çıkmaz.

Şifreli metin
Eşdeğer OpenSSL komutu
—

Komut, girdiğiniz anahtarı içerir.

FIPS 81'den DES test vektörü

Bu sayfanın çalıştırdığı motorla derleme sırasında hesaplanır — kendi DES uygulamanızı bununla karşılaştırın.
Anahtar (tekli DES) 0123456789abcdef
Düz metin 4e6f772069732074
Şifreli metin (ECB, dolgusuz) 3fa40e8a984d4815
DES/3DES motoru FIPS 81 vektörünü doğrular ve OpenSSL 3 ile (des-ede / des-ede3; tekli DES, K‖K‖K eşdeğerliğiyle doğrulanarak) ECB ve CBC üzerinde 3.000+ rastgele kombinasyonda çapraz kontrol edildi; eşdeğer OpenSSL komutları karşılaştırma için gerçek bir shell'de çalıştırıldı. Kütüphane varsayılanları, bunları çalıştırarak ve kaynakları okuyarak doğrulandı; alternatifler bölümüne bakın. — Go Tools Security Team · Sep 28, 2026

Kriptografi araçlarını geliştiren geliştiriciler tarafından yazıldı ve gözden geçirildi. Bu sayfadaki her şifreli metin ve bayt sayısı, aracın motoruyla hesaplanmış ve testlerle doğrulanmıştır.

DES hızlı yanıtlar

DES anahtar uzunluğu

8 / 16 / 24 bayt Tekli DES: 8 bayt (56 etkili bit). 3DES: 16 bayt (2 anahtarlı) veya 24 bayt (3 anahtarlı). Nominal anahtar malzemesi 112/168 bit; NIST etkin güvenlik gücü yaklaşık 80/112 bit (SP 800-57). Bu araç bayt sayısından otomatik belirler; diğer uzunluklar hata fırlatır.

FIPS 81 test vektörü

3fa40e8a984d4815 Anahtar 0123456789abcdef, düz metin "Now is t" (hex 4e6f772069732074): dolgusuz tekli DES ECB, 3fa40e8a984d4815 üretir.

DES IV uzunluğu ne kadardır

8 bayt 8 bayt (16 onaltılık hane), yalnızca CBC — ECB hiç kullanmaz. AES'in 16 baytlık IV'sünden farklıdır.

Java'nın PKCS5Padding'i nedir

= PKCS#7 DES için PKCS#7'dir — aynı dolgu algoritmasının tarihsel adı altındaki hali (PKCS#5 yalnızca 8 baytlık blokları tanımlamıştı, ki DES'in bloğuna denk gelir).

DES bugün güvenli mi

Yalnızca eski sistemlerle uyum Hayır. Tekli DES 2005'te emekli edildi; 3DES SP 800-131A Rev.2'de (2023) kullanımdan düşürüldü. Yalnızca eski sistemlerle uyum — yeni her şey için AES-256 kullanın.

DES ve 3DES (Data Encryption Standard) nedir?

DES (Data Encryption Standard), IBM'in Lucifer tasarımını temel alarak 1977'de ABD standard kuruluşunun kabul ettiği simetrik blok şifredir. 64 bitlik (8 baytlık) blokları, nominal 64 bitlik ve 56 etkili bitlik bir anahtarla, 16 turdan oluşan bir Feistel yapısıyla işler.

3DES (TDEA, Triple DES), kısa anahtarı tamir etmek için DES'i üç kez zincirler: C = E_K3(D_K2(E_K1(P))). Orta geçiş bir çözme işlemidir, böylece K1=K2=K3 zinciri tekli DES'e çöker — bilinçli bir uyumluluk tercihi. 2 anahtarlı biçim (K3=K1) yaklaşık 112 etkili bite sahiptir ve eski bankacılık sistemlerindeki en yaygın biçimdir.

NIST, tekli DES'i 2005'te emekliye ayırdı (FIPS 46-3 duyurusu) ve 3DES'i SP 800-131A Rev.2'de (2023) kullanımdan düşürdü. Hâlâ var olmalarının tek nedeni, eski sistemlerle uyum: banka takas sistemleri, ödeme ağ geçitleri ve 90'lar/2000'ler Java/.NET/PHP sistemleri hâlâ DES çağından kripto taşır. Yeni tasarımlar AES-256 kullanmalıdır.

# OpenSSL single DES (legacy provider)
openssl enc -des-ecb -provider legacy -provider default -K 0123456789abcdef -nopad

# 3-key 3DES CBC + PKCS#7 (default provider)
openssl enc -des-ede3-cbc -K <48 hex digits> -iv <16 hex digits> -base64 -A

Bu DES aracı ne yapar

Üç anahtar uzunluğunun katı doğrulaması

8/16/24 bayt otomatik olarak tekli DES / 2 anahtarlı / 3 anahtarlı 3DES olarak tanınır; başka her şey hata fırlatır. CryptoJS'nin sessiz kırpması veya openssl enc -K'nın uyarıyla kırpması gibi değil, yanlış anahtarlar gürültüyle başarısız olur — birlikte çalışma uyuşmazlıklarının bir numaralı kaynağı.

FIPS 81 vektörü derleme sırasında hesaplanır

Alttaki test vektör tablosu, aynı motorla derleme sırasında türetilir, böylece arama motorları JS çalıştırmadan referans değeri okur ve yazdırılan sayı asla etkileşimli olandan sapmaz.

Eşdeğer OpenSSL komutu

Her parametre kombinasyonu, sonucu OpenSSL 3'te yeniden üreten bir openssl enc komutuna dönüşür; tekli DES için legacy sağlayıcı bayrakları da dahil. Parametre sapmasını tespit etmek için onu karşı tarafa gönderin.

GBK düz metin desteği

DES çağı Java getBytes(), Çince bir Windows-JDK'da GBK üretir. Buradaki her iki yön de GBK kabul eder, böylece eski sistemlerden gelen Çince düz metin ön dönüştürme gerektirmez.

Tamamen tarayıcıda

Saf TypeScript, sıfır bağımlılık, sıfır ağ isteği. Anahtarlar ve düz metin asla cihazdan çıkmaz; yüklendikten sonra çevrimdışı çalışır. Anahtar işleyen bir araç için kabul edilebilir tek biçim.

Dillerde DES kütüphanesi varsayılanları

Java (JCE)

"DES" varsayılan olarak ECB + PKCS5Padding

Cipher.getInstance("DES"), DES/ECB/PKCS5Padding demektir; "DESede" 3DES'tir ama yalnızca 24 baytlık anahtarları kabul eder — 2 anahtar için K1‖K2'yi K1‖K2‖K1'e kendiniz genişletmelisiniz. PKCS5Padding, DES için PKCS#7'dir. IV'süz: şifrelemede rastgele bir IV seçilir (getIV() ile alın), çözerken "Parameters missing" hatası fırlatır.

PHP (openssl_encrypt)

des-ede3-cbc / des-ede-cbc

Algoritma adları OpenSSL'i izler: des-ede3 üçlü ECB, des-ede3-cbc CBC'dir. $options=0 (varsayılan) Base64 metni çıktılar; ham baytlar için OPENSSL_RAW_DATA. Kısa anahtarlar sessizce sıfırla doldurulur; boş IV önce uyarır, sonra sıfır IV ile şifreler.

OpenSSL 3 (openssl enc)

-des-ede3-cbc varsayılan olarak çalışır

Tekli DES, -provider legacy -provider default gerektirir (bazı derlemeler legacy'i hiç içermez). -K/-iv hex alır; varsayılan PKCS#7, devre dışı bırakmak için -nopad. -K, aşırı uzun anahtarları uyarıyla kırpar.

CryptoJS

Geçersiz anahtar uzunluklarını sessizce kırpıyor

8 baytlık ham anahtar (WordArray) çalışır; yanlış uzunluklar sessizce sıfırla doldurulur veya kırpılır (4 bayt doldurulur, 10 kırpılır — hata yok). Dize "anahtar", anahtar türetme çalıştırır (MD5 + rastgele salt, Salted__ önekli çıktı, her seferinde farklı). IV'süz CBC sıfır IV değil, TypeError çökmesidir. 8 baytlık anahtarla TripleDES, sessizce tekli DES'e dönüşür.

.NET

TripleDES varsayılan olarak CBC + PKCS7

TripleDESCryptoServiceProvider: Mode=CBC, Padding=PKCS7, 16 veya 24 baytlık Anahtar (DES 8 alır). .NET zayıf anahtarları reddeder (önce eşlik normalleştirilir, sonra zayıf anahtar tablosuyla kontrol edilir — sıfır anahtar hata fırlatır), diğer tüm kütüphaneler kabul ederken. Göç ederken buna dikkat edin.

Go (crypto/des)

Modun elle bağlanması

des.NewCipher, 8 baytlık anahtarlı ham blok arayüzünü verir; onu cipher.NewCBCEncrypter vb. ile kendiniz sarmalarsınız. 3DES, des.NewTripleDESCipher'dır (24 bayt). IV uzunluğu, çoğu dilde olduğundan daha katı kontrol edilir.

DES şifreleme örnekleri

FIPS 81 test vektörü (tekli DES, ECB, dolgusuz)

Anahtar 0123456789abcdef, düz metin (hex) 4e6f772069732074
3fa40e8a984d4815

Düz metin, "Now is t" ASCII dizesidir. Bu, ders kitaplarındaki FIPS 81 vektörüdür ve sayfanın altındaki tablo, derleme sırasında aynı motorla hesaplanır — kendi DES uygulamanız bu girdilerle bu değeri üretmiyorsa, içinde bir hata vardır.

2 anahtarlı 3DES + CBC + PKCS#7: UTF-8 düz metinden Base64'e

Anahtar 0123456789abcdeffedcba9876543210 (16 bayt), IV fedcba9876543210, düz metin: DES birlikte çalışma testi: sipariş 20260927-0042
PptXM4N/GxMFnvElrvzWPztZ8WdCjcyiW9+gTBOScJqmDmG60gEAA0i5uRyMqSYx6nbicR4Yf1A=

16 baytlık anahtar, 2 anahtarlı 3DES olarak işlenir (K1 = ilk 8 bayt, K2 = son 8 bayt, K3 = K1 — EDE2 kurgusu). 8 baytlık blok üzerinde PKCS#7, Java'nın DES için "PKCS5Padding" dediği şeyin ta kendisidir: aynı şema, yalnızca blok boyutu farklıdır.

3 anahtarlı 3DES + CBC + PKCS#7

Anahtar 0123456789abcdef23456789abcdef010456789abcdef012 (24 bayt), IV fedcba9876543210, düz metin: hello des
DhDQX9sfxKOirZ8eyqT7Jg==

24 baytlık anahtar, tam üç anahtarlı EDE3 demektir: C = E_K3(D_K2(E_K1(P))). Üç anahtar uzunluğundan, bozulmuş bir eşdeğeri olmayan tek biçim budur — hem 2 anahtarlı hem de K1=K2=K3, daha zayıf şifrelere çöker.

Bu DES şifreleme/şifre çözme aracı nasıl kullanılır

  1. 1

    Mod ve dolguyu seçin

    Java DES/ECB/PKCS5Padding için ECB + PKCS#7; openssl enc -des-ede3-cbc için CBC + PKCS#7 seçin. Eski PHP mcrypt kodu tipik olarak sıfır dolgusu kullanır.

  2. 2

    Anahtarı girin (8/16/24 bayt)

    Bayt sayısı şifreyi seçer: 8 = tekli DES, 16 = 2 anahtarlı 3DES, 24 = 3 anahtarlı 3DES. Hex, Metin veya Base64 seçin; rozet gerçek bayt sayısını ve belirlenen biçimi gösterir. Yanlış uzunluklar hata fırlatır — asla kırpılmaz.

  3. 3

    CBC için 8 baytlık IV'yi girin

    ECB için IV gerekmez. IV tam olarak 8 bayt olmalıdır — 16 onaltılık hane, AES'teki 32 değil. Rastgele düğmesi taze bir tane üretir.

  4. 4

    Yapıştırın ve anlık sonucu alın

    Şifreleme: metin (UTF-8/GBK) veya hex girin. Şifre çözme: Base64 veya hex şifreli metni yapıştırın. Sonuçlar yazarken güncellenir, tek tıkla kopyalama ve "Bu şifreli metni çöz" düğmesiyle gidiş-dönüş kontrolü ile.

  5. 5

    Eşdeğer OpenSSL komutunu karşı tarafa iletin

    Katlanır panel, geçerli sonucu yeniden üreten bir openssl enc komutu verir (anahtar dahil; tekli DES komutları -provider legacy -provider default taşır). Onu, birlikte çalıştığınız kişiye gönderin — kimsenin parametresinin yanlış olduğunu kesinleştirmenin en hızlı yolu.

DES şifre çözme neden başarısız olur

Anahtar uzunluğu 8/16/24 değil

32 onaltılık karakterlik bir "DES anahtarı" 16 bayttır — bu 2 anahtarlı 3DES'tir, tekli DES değil. Tersi durumda, 24 baytlık bir anahtarı yalnızca 2 anahtar destekleyen bir sisteme vermek de başarısız olur.

✗ Yanlış
16 baytlık anahtar 0123456789abcdeffedcba9876543210, tekli DES seçiliyken → hata "anahtar tam olarak 8 bayt olmalı"
✓ Doğru
Aynı anahtar 16 bayt (2 anahtarlı 3DES) olarak → temiz çözülür

PKCS5 ve PKCS7 adı karışıklığı

Java, DES için "PKCS5Padding" yazar ama PKCS#7 algoritmasını çalıştırır (PKCS#5 yalnızca 8 baytlık blok dolgusu tanımlamıştı, bu da DES'in bloğuna denk gelince ad o kaldı). JCE şifreli metnine karşı None veya Zero seçmek her zaman başarısız olur.

✗ Yanlış
JCE `DES/ECB/PKCS5Padding` şifreli metninin "dolgusuz" çözülmesi → sondaki çöp verisi veya kötü dolgu hatası
✓ Doğru
PKCS#7 (Java PKCS5Padding) seçin → temiz çıktı

AES IV uzunluğunun kopyalanması (16 bayt)

DES'in bloğu 8 bayttır, dolayısıyla IV'sü de 8 bayttır. AES kodundan yapıştırılan 32 onaltılık haneli IV uzunluk kontrolünü geçemez; 8 haneli IV sıfırla doldurulur ve yanlış okunur.

✗ Yanlış
IV 00000000000000000000000000000000 (32 onaltılık hane) → hata "IV 8 bayt olmalı"
✓ Doğru
IV 0000000000000000 (16 onaltılık hane) → kabul edildi

Yanlış CBC IV: yalnızca ilk 8 baytlık blok çöp olur

Çok bloklu şifreli metnin yanlış IV ile çözülmesi hata vermez — yalnızca ilk 8 baytlık blok çöp olur, gerisi düzgün çözülür (IV yalnızca ilk bloğa ulaşır ve dolgu kontrolü son blokta yaşar). "İlk birkaç karakter bozuk, gerisi düzgün" görüyorsanız, anahtardan önce IV'yi kontrol edin; tek bloklu şifreli metinde bunun yerine dolgu bozulur ve bad decrypt fırlar.

✗ Yanlış
Çok bloklu şifreli metin + yanlış IV → ilk 8 bayt bozuk, gerisi normal — "yanlış anahtar" sanıldı
✓ Doğru
Yalnızca IV'yü değiştirin (anahtara dokunmayın) → ilk blok kurtuldu, sorunun IV'de olduğu doğrulandı

openssl enc -K uzun anahtarları sessizce kırpıyor

-K, yalnızca ihtiyacı olan baytları tutar ve betiklerin yuttuğu tek satırlık bir uyarı basar. Karşı taraf "anahtar şu 48 onaltılık hane" derken aslında ilk 16 ile şifrelediğinde, tam anahtarla çözme başarısız olur.

✗ Yanlış
Shell'de: `-K <49 onaltılık hane>` → "hex string is too long, ignoring excess" boru hattında kayboldu
✓ Doğru
Bu aracın eşdeğer komutuyla doğru uzunlukta bir `-K` üretin, sonra anahtar baytlarını karşı tarafla karşılaştırın

OpenSSL 3'te tekli DES "unsupported" ile başarısız

OpenSSL 3'ün varsayılan sağlayıcısında des-ecb/des-cbc yoktur; çıplak çalıştırmak digital envelope routines::unsupported fırlatır. -provider legacy -provider default ekleyin veya K‖K‖K ile des-ede3 kullanın (cebirsal olarak tekli DES).

✗ Yanlış
openssl enc -des-ecb -K … → Hata: unsupported
✓ Doğru
openssl enc -des-ecb -provider legacy -provider default -K … (veya des-ede3-ecb -K <K‖K‖K>)

Ne zaman çevrimiçi DES şifrelemesine ihtiyaç duyarsınız

Eski sistemlerdeki mesaj kriptografisinin ayıklanması
Banka takas sistemleri, POS ağ geçidi MAC hesaplamaları ve eski ERP arayüz şifrelemesi hâlâ DES/3DES çalıştırır. Java veya PHP ortamı kurmadan "anahtar doğru mu, hangi mod, hangi dolgu" kontrolü için mesajı ve anahtarı buraya yapıştırın.
Eski Java / PHP / .NET kodunun göç ettirilmesi
Geçiş yapmadan önce Cipher.getInstance("DES/ECB/PKCS5Padding") çıktısını veya openssl_encrypt(..., 'des-ede3-cbc', ...) çıktısını bu araçla bayt bayt karşılaştırın. 2 anahtarlı/3 anahtarlı biçimler anahtar uzunluğundan belirlenir, tahmin edilecek hiçbir şey yok.
Güvenlik denetimleri ve öğretim
ECB'nin desen sızıntısını gösterin (eşit düz metin blokları → eşit şifreli metin blokları), 3DES'in dejenerasyonunu doğrulayın (K1=K2=K3 tekli DES'e çöker) ve FIPS 81 vektörünü kontrol edin — sızma testi raporlarının ve kriptografi derslerinin standart içeriği.
Dokümantasyon için örnek şifreli metin üretimi
Bir kurum içi wiki veya API dokümanı yeniden üretilebilir bir örnek gerektirdiğinde, sabit anahtar ve IV ile burada hesaplayın — okuyanlar bunu eşdeğer OpenSSL komutuyla doğrulayabilir ve üretim verisi etrafta dolanmaz.

DES / 3DES ve blok şifre modları açıklaması

Blok ve anahtar
DES, 64 bitlik blokları 16 Feistel turuyla işler; her tur, 56 bitlik ana anahtardan PC-1/PC-2 sıkıştırma permütasyonları ve planlı kaydırmalarla türetilen 48 bitlik bir alt anahtar kullanır. Sekiz S-box doğrusal olmayanlığın tek kaynağıdır; tasarım ölçütleri hiçbir zaman tam olarak yayınlanmadı.
3DES EDE kurgusu
C = E_K3(D_K2(E_K1(P))). Ortadaki çözme işlemi, K1=K2=K3 durumunda zinciri tekli DES'e çökertir — geriye dönük uyumluluk hedefi. 2 anahtarlı biçim 2×56=112 bit nominal anahtar malzemesine sahiptir ama NIST'e göre etkin güvenlik gücü yaklaşık 80 bittir (SP 800-57 Part 1); 3 anahtarlı biçim nominal olarak 168 bit, etkin gücü ise 112 bittir (artık önerilmiyor).
ECB ve CBC
ECB blokları bağımsız şifreler — eşit düz metin blokları eşit şifreli metin blokları verir; 8 baytlık blokların bunu AES-ECB'den de görünür kıldığı bir desen sızıntısıdır. CBC, şifrelemeden önce önceki şifreli metin bloğunu (ilki için IV) düz metne karıştırır ve DES çağı bankacılığında ana akım tercihiydi. Her iki mod da 8 baytın katı olan şifreli metin üretir.
Dolgu: PKCS#7 / Sıfır / Yok
PKCS#7, ne eksikse n adet n değerinde bayt ekler (3 eksik → 03 03 03) ve dolu bir bloğu bütün ekstra bir blokla doldurur — bu, Java'nın DES için "PKCS5Padding"idir. Sıfır dolgusu 0x00 ile doldurur ve düz metin gerçekten 0x00 ile bitiyorsa veri kaybettirir. Yok, 8'in tam katını gerektirir.
OpenSSL 3'ün legacy sağlayıcısı
OpenSSL 3, tekli DES'i varsayılan olarak kapalı bir legacy sağlayıcıya taşıdı: CLI -provider legacy -provider default gerektirir ve bazı derlemeler (Node'un paketli OpenSSL'i dahil) onu tamamen çıkarır. 3DES (des-ede/des-ede3) varsayılan sağlayıcıda kalır. Bu aracın saf-TS motoru bundan etkilenmez.

DES'i doğru kullanmak (eski sistemlerle uyum)

Yeni sistemlerde DES'i hiçbir biçimde kullanmayın
Tekli DES'in 56 biti kaba kuvvetle kırılabilir; 64 bitlik blok Sweet32 birthday sınırını (CVE-2016-2183) taşır ve NIST tek bir anahtar demetini ≈8 MB (2²⁰ blok) düz metinle sınırlar; 2 anahtar Yasak, 3 anahtarlı şifreleme 2023'ten sonra Yasak. Yeni her şey için AES-256 kullanın. Bu aracın varoluş amacı, eski sistemleri okumak ve güvenle göç ettirmektir.
Eski sistem uyumunda önce bayt özdeşliği
Eski bir sisteme dokunurken, önce eski parametrelerin şifreli metnini burada bayt bayt yeniden üretin, sonra koda dokunun. Algoritmayı değiştirmeden önce anahtar uzunluğunu, modu, dolguyu ve IV kaynağını (sabit mi rastgele mi, başlıkta mı akış dışında mı) doğrulayın.
IV'leri yeniden kullanmayın, eski sistemlerde bile
Aynı anahtar altında CBC IV'sünü yeniden kullanmak, iki düz metnin ilk blokları arasındaki ilişkiyi ifşa eder. Eski bir protokol sabit IV zorunlu kılıyorsa, bunu göç listesinde bir kusur olarak kaydedin — bir gelenek olarak devralmayın.
Anahtarları kaynak kodun dışında tutun
DES çağı sistemler, anahtarları rutin olarak kaynak kod veya yapılandırma içine gömer. Böyle bir sistemi denetlerken raporda "anahtar nasıl saklanıyor" bilgisini "hangi algoritma" bilgisinin yanına koyun — çoğu ihlalde asıl delik, birincisiydi.

DES şifreleme/şifre çözme hakkında SSS

DES şifre çözme "bad decrypt" veya dolgu hatasıyla başarısız oluyor — neyi kontrol etmeliyim?
Şifre çözme, her parametrenin şifreleyen tarafla eşleşmesini gerektirir: anahtar baytları, anahtar uzunluğu (8/16/24), mod (ECB/CBC), IV, dolgu ve şifreli metnin hex mi Base64 mü olduğu. En yaygın iki tuzak: anahtar uzunluğu uyuşmazlığı (32 onaltılık karakterden oluşan bir "DES anahtarı" 16 bayttır — bu 2 anahtarlı 3DES'tir, tekli DES değil) ve dolgu adı karmaşası (Java'nın PKCS5Padding'i DES için PKCS#7'dir — None seçmeyin). Sağdaki katlanır panel, geçerli ayarlar için eşdeğer OpenSSL komutunu gösterir; onu karşı tarafa gönderin — sapmanın nerede olduğunu bulmanın en hızlı yolu budur.
DES anahtarı kaç karakterdir? Peki 3DES?
Tekli DES: nominal olarak 64 bit (8 bayt, 56 etkili — her baytta bir bit eşlik bitidir). 3DES'in iki biçimi vardır: 2 anahtarlı (16 bayt, K1‖K2, K3=K1) ve 3 anahtarlı (24 bayt, K1‖K2‖K3). Nominal anahtar malzemesi 112/168 bit, ancak NIST'in etkin güvenlik gücü (SP 800-57 Part 1 Rev.5 Tablo 2) yalnızca yaklaşık 80 ve 112 bit — üstelik 3 anahtarlı biçim de artık önerilmiyor. Bu araç biçimi bayt sayısından belirler; 8/16/24 dışındaki her uzunluk hata fırlatır — CryptoJS ve openssl enc -K bunun yerine sessizce kırpar veya sıfırla doldurur ki bu da birlikte çalışma sorunlarının bir numaralı kaynağıdır.
IV nedir ve DES için uzunluğu ne kadardır?
IV, CBC'nin ilk bloğa karıştırdığı 8 baytlık değerdir; ECB bir IV kullanmaz. Tam olarak 8 bayt olmalıdır (16 onaltılık hane veya 8 ASCII karakteri). Dikkat: DES'in IV'sü 8 bayt, AES'inki 16 bayttır — AES IV uzunluğunu kopyalamak anında başarısız olur. Aynı anahtarla bir IV'yi asla yeniden kullanmayın.
Java'nın DES/ECB/PKCS5Padding'i bu araçta neye karşılık gelir?
ECB modu + PKCS#7 dolgusu. JCE'de DES için "PKCS5Padding", genel PKCS#7 algoritmasını çalıştırır — PKCS#5 hiçbir zaman yalnızca 8 baytlık bloklar için dolgu tanımlamıştı ki bu, DES'in bloğudur. Java Cipher.getInstance("DES/ECB/PKCS5Padding") çıktısı, burada ECB + PKCS#7 ve 8 baytlık tekli DES anahtarıyla çözülür. ⚠️ Java'nın 3DES'i (DESede) yalnızca 24 baytlık anahtarları kabul eder — 2 anahtarlı biçim için K1‖K2'yi kendiniz K1‖K2‖K1'e genişletmelisiniz.
PHP'nin des-ede3 algoritma adları nasıl eşleşir?
PHP, OpenSSL'in adlarını ödünç alır: des-ede3-cbc, 3 anahtarlı 3DES + CBC'dir; des-ede3-ecb, 3 anahtarlı + ECB'dir; des-ede-cbc ise 2 anahtarlı biçimdir. 24 baytlık anahtar 3 anahtarı, 16 bayt 2 anahtarı seçer.
DES anahtarındaki eşlik bitleri nedir? Kontrol edilirler mi?
Her anahtar baytının düşük biti eşlik biti olarak tanımlanmıştır, yani gerçek 56 bitlik anahtar 64 bitin içinde yer alır. FIPS 46-3 bunu kontrol etmeyi gerektirmez — OpenSSL, Java ve bu araç da onu yok sayar; herhangi 8 bayt çalışır ve eşlik bitlerini değiştirmek şifreli metni değiştirmez. .NET istisnadır: önce eşliği normalleştirir, sonra zayıf anahtar tablosuyla karşılaştırır, bu nedenle sıfır anahtar ve diğer zayıf anahtarlar .NET'te reddedilir — diğer tüm kütüphaneler onlarla mutlu mutlu şifrelerken. Bu tuzak yalnızca, test anahtarlarını Java/OpenSSL'den .NET'e taşırken tetiklenir.
3DES'te K1 = K2 olduğunda ne olur?
2 anahtarlı 3DES'te K3 her zaman K1'e eşittir; K1 = K2 de ise, EDE zincirinin tamamı tekli DES'e çöker: E_K(D_K(E_K(P))) = E_K(P). Aynı şey, 24 baytlık anahtarın üç 8 baytlık bileşeni de aynı olduğunda gerçekleşir. Bu araç yine de şifreler (önce birlikte çalışabilirlik), ama o zaman gerçek güç tekli DES'in 56 biti, 3DES değildir.
DES hâlâ güvenli mi?
Hayır — yalnızca eski sistemlerle uyum için. NIST, tekli DES'i 19.05.2005'te emekliye ayırdı (56 bitlik anahtarlar kaba kuvvetle kırılabilir; EFF'nin Deep Crack'i 1998'de bunu 56 saatte başardı, bir yıl sonra distributed.net ile 22 saatte). SP 800-131A Rev.2, 2 anahtarlı TDEA şifrelemesini Yasak, 3 anahtarlı şifrelemeyi de 31.12.2023'ten sonra Yasak olarak listeler (şifre çözme, yalnızca geçmiş verileri okumak için "Legacy use" olarak kalır); SP 800-67'nin kendisi de 01.01.2024'te geri çekildi. Küçük 64 bitlik blok, Sweet32 sınıfı birthday sınırını da (CVE-2016-2183) taşır — NIST tek bir anahtar demetini 2²⁰ blok (≈8 MB) düz metinle sınırlar. Yeni her şey için AES-256 kullanın. Bu aracın var olma nedeni, banka takas sistemlerinin, ödeme ağ geçitlerinin ve eski Java/.NET sistemlerinin hâlâ DES çağından mesajlar taşımaları — onları düzeltmeye, onları okuyabilmekle başlanır.
3DES sonucum neden Java/PHP'den farklı?
İsabet oranına göre kontrol edin: ① anahtar uzunluğu — karşı tarafın "32 onaltılık DES anahtarı" 16 bayttır (2 anahtarlı 3DES), siz tekli DES olarak çözdünüz; ② mod — Java'da çıplak "DES" varsayılan ECB, OpenSSL'de mod soneki olmayan adlar des-ede3/des-ede ECB'dir (CBC takma adı -des3); PHP'de openssl_encrypt algoritma adını açıkça yazmayı gerektirir — kafa karıştıran taraf, varsayılan çıktının ham bayt değil Base64 metni olmasıdır; ③ dolgu — eski PHP mcrypt çoğu zaman sıfır dolgusu kullanır, JCE PKCS#5/#7 kullanır; ④ kodlama — hex mi Base64 mi, ve harf büyüklüğü; ⑤ CryptoJS parola tuzağı — "anahtar" olarak bir dize vermek, anahtar türetme çalıştırır (MD5 + rastgele salt, Salted__ önekli çıktı, her seferinde farklı), ki bu hiçbir zaman ham anahtar değildir — "aynı kod, her çalıştırmada farklı sonuç" demekle açıklanan bir numaralı neden. Bu araç, her birini değiştirmenize izin verir; sağdaki eşdeğer OpenSSL komutu, karşı tarafa yeniden üretmesi için gönderilebilir.
ECB mi CBC mi — hangisini kullanmalıyım?
Konuştuğunuz sistemin gerektirdiği hangisiyse — eski sistemlerle uyumda seçme hakkı yoktur. Yine de seçebilseydiniz, her zaman rastgele IV ile CBC: ECB, eşit düz metin bloklarını eşit şifreli metin bloklarına çevirir ve DES'in küçük 8 baytlık blokları, desenleri AES-ECB'den bile belirgin biçimde sızdırır. DES çağı bankacılık protokolleri ikisini de kullanır; önce protokol belgesini kontrol edin.
Çevrimdışı çalışır mı? Verilerim yükleniyor mu?
Tüm hesaplama tarayıcınızda gerçekleşir (saf TypeScript, sıfır bağımlılık, sıfır ağ isteği); anahtarlar ve düz metin asla cihazdan çıkmaz. Sayfa yüklendikten sonra çevrimdışı kalabilir, çalışmayı sürdürebilirsiniz. Anahtar işleyen bir araç için kabul edilebilir tek biçim budur.
2 anahtarlı mı 3 anahtarlı 3DES mi — eski sistemlerde hangisi daha yaygın?
2 anahtarlı (16 bayt) daha yaygındır: bankalar ve ödeme sektörü, uyumluluk için 16 baytlık anahtarlı donanım devreye aldı ve SP 800-67 ona ayrı (daha erken) bir emeklilik tarihi tanıdı. Bu yüzden 32 onaltılık karakterlik bir "3DES anahtarı" büyük olasılıkla 2 anahtarlı biçimdir. Bu araç, biçimi bayt sayısından otomatik belirler.

AES Şifre Çözme Aracı — OpenSSL ve CryptoJS Uyumlu

Güvenlik Araçları

AES şifreli metnini online çözün — GCM/CBC/CTR, parola veya ham anahtar, OpenSSL ve CryptoJS "U2FsdGVkX1" biçimini otomatik algılar. %100 tarayıcıda, anahtarlar sayfadan asla çıkmaz.

AES Şifreleme Aracı — GCM, CBC ve CTR

Güvenlik Araçları

Ücretsiz online AES şifreleme — AES-128/192/256, GCM/CBC/CTR, parola (PBKDF2) veya ham anahtar. %100 tarayıcınızda çalışır; hiçbir şey yüklenmez.

Bcrypt Karma Oluşturucu ve Doğrulayıcı

Güvenlik Araçları

bcrypt şifre karmalarını çevrimiçi oluşturun ve doğrulayın — ayarlanabilir maliyet, $2b$/$2a$/$2y$ önekleri. %100 tarayıcınızda; şifreniz asla yüklenmez.

CRC Sağlama Toplamı Hesaplayıcı

Güvenlik Araçları

Onaltılık veya metin yapıştırın; CRC-8, CRC-16 ve CRC-32'nin 63 çeşidi aynı anda hesaplansın. Tutturamadığınız bir sağlama toplamı mı var? Yazın, araç çeşidi söylesin: MODBUS, CCITT-FALSE, XMODEM. Tamamen tarayıcınızda çalışır.

HMAC Üretici ve İmza Doğrulayıcı

Güvenlik Araçları

Ücretsiz online HMAC üretici ve doğrulayıcı. Metin, Hex veya Base64 anahtarlarla ve Hex/Base64/Base64URL çıktısıyla HMAC-SHA256/SHA1/SHA384/SHA512 hesaplayın. %100 tarayıcınızda — anahtarlar sayfadan asla çıkmaz.

JWT Çözücü

Güvenlik Araçları

Ücretsiz JWT çözücümüzle JWT token'larını online çözün. header, payload, signature, son kullanma, algoritma ve claim'leri anında inceleyin. %100 tarayıcıda çalışır — token'ınız cihazınızdan ayrılmaz. Kayıt yok, izleme yok.