Bir dosyanın şifreleme karmalarını yayan çapraz platform / taşınabilir bir program mı arıyorsunuz?


1

MD5, SHA, vb. Gibi şifreli karmaları ve CRC32'yi kendisine geçirilen bir dosyanın / CRC32 kodunun ürettiği Linux ve Linux'ta taşınabilir olması gereken bir program arıyorum.

Bu yürütülebilir dosyayı terabayt dosyalar üzerinde çalıştıracağım, onların SHA, MD5 ve CRC32 (ve gelecekte daha fazlası) imzalarını üreteceğim, bu yüzden hız önemlidir .

Aklımdaki tam olarak ReHash'ın ReHash olduğu şey , ReHash .

Ne yazık ki, birçok kullanıcının karma değerlerin uygulanmasında hataların yanı sıra dolgu (blok temelli algoritmalar için) uygulamasında hataların bulunduğundan şikayet ettiğini gördüm.

Kriptografide uzman olmamak ve sadece bana sadece bazı kodları derlememe gerek kalmadan istediğim karmaları veren bir kara kutu çözümü aramaktan daha iyi bir şey olup olmadığını merak ediyor muydum?

Elbette Python'da, kripto modüllerini istediğimi üretmek için kullanacak bir yapıştırıcı programı yazabilirdim, ama C gibi bir dilden derlenmiş bir ikiliyi tercih ederdim.

Bu yürütülebilir dosyayı terabayt dosyalar üzerinde çalıştıracağım, SHA, MD5 ve CRC32 imzalarını (ve gelecekte daha da fazlası) imzalarını üreteceğim ve bunların hepsini Python kodundan ele alacağım, bu yüzden Python ile uyumlu bir şey tercih edilecek, ancak C'nin pahasına değil hız gibi.

Yanıtlar:


2

Python şifreleme işlemleri yerel kodda (C'den derlenir) uygulanır. Bir python programında değerleri istediğinizden, bunları kullanmak daha kolay olacaktır.

Linux sağlama hesaplamalar için yardımcı programlar (birlikte gelir cksum, md5sum, sha1sum, ...). Öyleyse diğer birçok birlik de öyle. GNU yardımcı programlarının birkaç Windows bağlantı noktası vardır (ki bu Linux'ta ne elde edeceğinizdir ): Cygwin , Gnuwin32 , Msys , ... SHA-256 ve SHA- 512'yi almak istiyorsanız yeterince yeni yardımcı programlara ihtiyacınız olacak.

Etrafta yüzen, genellikle tek bir dağıtımda toplanmayan çeşitli şifreleme algoritmalarının çok liberal lisanslarına sahip birkaç ANSI C uygulaması vardır. Güvenilirliklerini kontrol etmek için onları arayabilir ve küçük girdilerde test edebilirsiniz.

Windows altında, sağlama toplamları satır akışları yerine bayt akışları üzerinde tanımlandığından, dosyaları istediğiniz gibi ikili veya metin olarak doğru şekilde kullandığınızdan emin olun. (Normalde dosyaları ikili modda açmak istersiniz, ancak Windows satır sonlarına dönüştürülmüş bir metin dosyanız varsa, efekti tersine çevirmek için dosyayı metin olarak açmanız gerekir.) Herhangi bir işletim sistemi altında, emin olun Dosyayı açarken herhangi bir kodlama çevirisi yapmazsınız.

Hız sizin için çok önemli olduğu için, bulabileceğiniz tüm uygulamaları toplayın ve bunları orta boy girdilerle (birkaç megabayt) karşılaştırın. Farklı uygulamalar, farklı mimarilere daha iyi hız verebilir. 64 bit uygulamaların, bunları çalıştırabileceğiniz yerlerde daha hızlı olması muhtemeldir.


Kripto yordamları C ile yazılmış olsa da, dosya adını argüman olarak alan hiçbir işlevi fark etmedim. Bu, dosyayı açmam ve okumam gerektiği anlamına gelir - hepsi Python'dan. Bu, bunun C'ye benzer bir performans olmayacağı anlamına gelir. Ayrıca, var olan bir çözümle kendimden daha fazla ilgileneceğim!
PoorLuzer

Ancak dosya yordamları da C’de.
Ignacio Vazquez-Abrams

2

OpenSSL'de hash hesaplayan araçlar vardır. Cygwin ( http://www.cygwin.com/ ) projesinde openssl araçları var. Cygwin katmanından dolayı saf bir Windows uygulamasından biraz daha yavaş olmasına rağmen, karma neslinizi kodlayabileceğiniz bir ortam elde edersiniz.


1
Python'un OpenSSL bağlaması vardır ve bu standartlara alternatif yapar hashlib. Cygwin katmanı saf tamsayı hesaplamasının hızını etkilememelidir, fakat derleyicinin kalitesi olabilir (eminim, win32 / i386 için, özellikle 64-bit mümkün ise, Cygwin'in gcc'sinden daha iyi derleyiciler olduğuna eminim.).
Gilles,

Peki hangisi daha hızlı ve doğru olurdu : OpenSSL veya hashlib?
PoorLuzer 12:10

1
Her ikisi de doğru olurdu, aynı algoritmayı uygularlar. Hızlı, test etmen gerekir. Uygulamaların, devasa veri kümenizi aşma kolaylığının ham hızdan daha önemli olduğunu düşünüyorum.
Rich Homolka

hashlib, yerleşik olduğu için uygulayacağınız "kolay" olur. Bu dosya doğrulayıcılardan bazılarının doğru çalışıp çalışmadığını ve aynı kodu yapmak için bazı kodları girmeden önce istediğim hastayı açığa çıkarıp çıkaramayacağımı göreyim.
PoorLuzer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.