Recentemente ho iniziato a usare Vim per crittografare i file di testo (usando il :X
comando e inserimento di una chiave di crittografia al prompt). Come documentato, Vim richiede quindi quella chiave quando riapro il file e decodifica il testo.
Oggi ho aperto uno di quei file crittografati, ma con mia sorpresa Vim no richiedere una chiave e visualizzare semplicemente il testo crittografato. Ovviamente ho riaperto il file diverse volte, ma sempre con lo stesso risultato. (Sto usando Vim 7.3 su OS X. Non ho riscontrato differenze di comportamento in MacVim rispetto alla versione non GUI.)
Ho tre impressioni vaghe su ciò che potrebbe causare questo problema:
- Avevo rinominato il file in questione, forse più di una volta, dopo che era stato crittografato. Sfortunatamente, non riesco a ricordare se ho mai decifrato il file con successo dall'ultimo rinominare.
- Questo file è archiviato nella mia cartella Dropbox, quindi se il file è stato modificato in qualche modo sul server Dropbox, quella versione presumibilmente avrebbe sovrascritto la mia (in precedenza buona) versione locale. (Tuttavia, quando provo a recuperare una vecchia versione del file tramite Dropbox , Trovo solo una singola versione del file, e non riesco a decodificarlo.)
- Combinando i due precedenti: in realtà ho rinominato il file in modo che abbia a
.crypt
estensione, non pensando che questo sarebbe rilevante a livello locale, ma vedo che Dropbox sta effettivamente identificando questo file (nel fileKind
colonna) comefile crypt
. Forse Dropbox ha gestito quel file in modo diverso in qualche modo se lo riconosceva come un file crittografato? (Tuttavia, quando memorizzo un file di testo non criptato con estensione.crypt
, Non ho alcun problema a leggerlo.)
Ho provato a usare openssl per recuperare il file, in particolare come openssl bf -d -in [encrypted file] -out [decrypted file]
. Ma questo riporta bad decrypt
1948:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:/SourceCache/OpenSSL098/OpenSSL098-47/src/crypto/evp/evp_enc.c:330:
(o lievi variazioni).
(Permettetemi di chiarire preventivamente che sono sicuro al 99% che questo non è un caso in cui io uso la chiave di crittografia sbagliata, dato che ho decodificato il file numerose volte in passato, e ora Vim non richiede nemmeno una chiave Ho anche ricontrollato che sto usando il tasto giusto con openssl.)
Ho usato la crittografia predefinita di Vim, che ho capito essere blowfish in 7.3 (anche se ho provato qualche altro comando di cifratura con openssl ma non ero sicuro di quale, se esiste, corrispondesse a pkzip, che capisco essere l'algoritmo di crittografia più vecchio di Vim.)
Non ho trovato nulla di rilevante in :help encryption
tranne per provare a usare :set key=
per garantire che Vim mi chieda una chiave per i file crittografati, ma continua a non farlo. Questa era l'unica soluzione suggerita in domande un po 'simili che ho trovato altrove (ad es. questa domanda , sebbene digitando il prompt sans chiave nel mio caso viene semplicemente interpretato come comandi che iniziano in modalità normale).
Infine, può essere utile sapere che l'inizio del file in questione (prima di tutta la spazzatura di crittografia) è "Salato"; se Vim ha salato la chiave di crittografia, potrebbe il sale in qualche modo scomparire (in, ahem, i termini del laico)?
Per essere chiari, le mie domande principali sono:
- Cosa sta causando a Vim di non vedere più il file come crittografato e che necessita di una chiave di decodifica? Anche se non riesco a recuperare il testo, mi piacerebbe poterlo evitare in futuro se possibile. Ad esempio, sincronizzare un file crittografato con Dropbox è un grande no-no?
- C'è qualcos'altro che potrei provare a recuperare il testo? Anche la forzatura bruta sembra fuori discussione dal momento che non è un problema chiave mancante, ma forse sto usando in modo errato OpenSSL o ignorando un'altra soluzione Vim.
Grazie!
---
MODIFICARE: Ho notato qualcos'altro che potrebbe essere rilevante. Ho provato a replicare questo problema e nel corso di questo ho notato che con un file Vim "buono" crittografato (cioè, uno che posso decodificare con successo), se uso Quick Look per visualizzare il file o se lo apro in TextEdit, vedo solo una singola riga di testo che legge qualcosa di simile VimCrypt~01!9‰◊ëMå Ø^efl.œ1b_öä˙ß≥
. Ma quando apro il file con cui ho problemi, ottengo invece 130 righe di testo cifrato apparente, con la prima riga che inizia con Salted
(come menzionato sopra).
autoread
, smarttab
, autoindent
, wrap
, e showbreak
.