Şifre çözme komutunu kullanarak şifre çözme işlevini openssl'ye kullanma


54

Bu yüzden bir komut satırı argümanı yoluyla bir şifre geçmek için en güvenli yöntem değildir. Bu, openssl belgelerinin openssl komutuna bir şifre argümanının nasıl aktarılacağı konusunda kafamın karıştığını söyledi.

İşte yapmaya çalıştığım şey

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d

Bu daha sonra şifre çözme için şifre ister. Eğer şifreyi dosyaya eklemeye çalışmadan şifreyi sadece şifreye vermek isteseydim cevabı denemek ve bulmak için openssl belgelerini ve interweb'leri aradım. Ben ekleyerek çalıştı -pass:somepasswordve -pass somepasswordbirlikte ve boşuna tırnak işaretleri olmadan hem.

Sonunda cevabı buldum ve diğer forumlarda insanların benzer soruları olduğunu gördüm, bu yüzden sorumu buraya gönderip topluluğa cevap vereceğimi düşündüm.

not: openssl sürümünü 0.9.8y kullanıyorum

Yanıtlar:


108

Belgeler benim için çok açık değildi, ama cevabı vardı, zorluk bir örnek göremiyordu.

İşte nasıl yapılacağı:

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -pass pass:somepassword

Komut satırı komut sözdiziminin her zaman -passbir boşluk ve ardından sağladığınız parola türünün, yani pass:düz parola ifadesinin ve ardından boşluktan sonra iki noktadan sonraki gerçek parolanın takip edildiğine dikkat edin.

Ayrıca, belgeler aşağıdakileri yaparak başka parola kaynakları sağlayabileceğinizi belirtir:

  • env:somevar şifreyi bir ortam değişkeninden almak için
  • file:somepathname Şifreyi dosyanın ilk satırından konumdan almak için pathname
  • fd:number Şifreyi dosya tanımlayıcı numarasından almak için
  • stdin standart girdiden okumak için

Şimdi bu soruyu yazdım ve cevapladım, hepsi açık görünüyor. Ancak bunu çözmesi kesinlikle zaman aldı ve başkalarının da benzer zaman aldığını gördüm, bu yüzden umarım bu zamanı azaltabilir ve diğerleri için daha hızlı cevap verebilir! :)

OpenSSL 1.0.1e ile kullanılacak parametre -passinveya -passout. Yani bu örnek şöyle olurdu:

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -passin pass:somepassword


Passin veya passout kullanmak arasındaki fark nedir? - Ha! Sadece baktım, stdin vs stdin tabii ki!
dtmland

Çoğu openssl komut için geçerli olan şifre seçeneklerinin dokümantasyonunun (sadece değil enc), web'de 'SEÇENEKLER' altındaki web sayfasında da openssl (1) kılavuzunda olduğunu unutmayın . Ancak -passin / out hakkındaki son bitinize inanmıyorum; gibi diğer openssl komutlar da rsa dsa ec pkey pkcs8 pkcs12 req cabunları kullanır, ancak gördüğüm her sürümde, doğrudan yukarı akış kaynak enckullanımlarından -passveya -k -kfilebelgelendiği şekilde oluşturulmuş 1.0.1e dahil (kılavuzda enc).
dave_thompson_085

openssl dgstKomuta ne dersin ? Bunun için parolayı komut satırına nasıl girersiniz?
frakman1

4
btw -passin, giriş sertifikası için bir şifre sağlamak için kullanılır -passoutve yeni oluşturulan sertifika için kullanılır
drmad

7

Kullandığım -passinve -passoutörnekte her iki dosya ayarlı şifreler:

openssl pkcs12 -in voip.p12 -out voip.pem -passin pass:123 -passout pass:321

şifre nerede 123ve321


5

Şu anda Ubuntu 14.04 LTS openssl 1.0.1f-1ubuntu2.16 ile birlikte geliyor

Bu versiyonda kullanılacak parametre -k

Örnek:

openssl enc -aes-256-cbc -e -in some_file.unenc -out some_file.enc -k somepassword

1
Örnekte, -k openssl 'enc' komutunun kullanabileceği bir seçenek (deneyin man enc), genel bir seçenek değildir. Eğer bakarsanız man opensslsize 'Parolası Seçenekleri' başlığı altında göreceğiniz, genel çözüm ne; pass:password, env:var, file:pathname, fd:numberYa da stdin, daha önceki bir yanıt olarak belirtildiği gibi.
sibaz
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.