Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/04/2020, à 03:53

passio

Crypter une phrase dans une autre phrase sur le long terme.

Bonjour, je voudrais crypter une chaine de caractère dans une autre chaine de caractère... J'ai besoin que ce soit rétrocompatible sur Mac ou Linux... sans risque de perdre la manière dont j'ai crypté ma phrase après quelques années... Il y a une infinité de système qui font ce Job sur le Net, mais je ne veux avoir un système de cryptage qui ne dépend pas d'un truc trouvé sur Github ou autre... Je voudrais quelque chose d'aussi solide qu'un gpg -c "monfichier"... qui marche aussi bien sur Mac que Linux et que je sais que je pourrais toujours décrypter facilement dans quelques années...

Je pensais avoir trouvé la solution, mais cela ne semble pas compatible de Mac à Linux, Pourquoi ?

Sur mac je crypte :
echo 'La phrase que je veux securiser' | openssl aes-256-cbc -a

Sur mac je décypte immédiatement :
Décrypter : echo -e "U2FsdGVkX19/4SSCS/XRU6sf/XqNFR8TFllTRdRHEIEEl1WQqIKgMbIDiuN6sQJk\nKSC64q/Q3AyRhlG+16ONQuReoGpTonQnCSDI8pc/2m7mSwEbmAtpyjqN8OLEtvkS" | openssl aes-256-cbc -a -d

ça fonctionne très bien...

Par contre, si je prends ma ligne de commande de décryptage, je peux aller l'écrire sur Ubuntu, Lubuntu, Fedora, j'obtiens un : digital envelope routines:EVP_DecryptFinal_ex:bad decrypt://+crypto/evp/evp_enc.c:583


Il y a une commande gpg -as mais elle dépend d'une key elle-même protégée par une passphrase... Or, je ne veux pas avoir cette clé que je peux perdre, qu'il faut exporter etc...


Je cherche un système simple pour avoir une chaine de caractère en entrée, une chaine de caractère en sortie, et l'encryption avec une passphrase... La commande openssl me semblait pas mal mais ce manque d'interropérabilité entre mac et Linux me fait perdre un peu foi pour le long terme...

Hors ligne

#2 Le 17/04/2020, à 05:07

passio

Re : Crypter une phrase dans une autre phrase sur le long terme.

Après 5heures de recherches :
Voici la solution :
Crypter :

 echo 'La phrase que je veux crypter' | gpg --symmetric | base64

Décrypter :

echo -n "jA0EBwMC9OXBXNrz8qno0n0BUU8s4q9ze7dYDs4WJsJmTc2zDrveTXIidVPSgzSU26yHpvGiXCH7AXAYBuEYl+O0eUikyCAqhzSb0mFPyIkm0pHeENU4xb1/3kja81/WkN/pbFv6ZcrIGRVGIJj88E8dx3Qv87S/5KIsz2l5jnWbanjLnprgddHWu+tRMQ==" | base64 --decode | gpg -d

Si vous avez une erreur comme moi pour le décryptage, suivez ce tutoriel qui prend 30 secondes pour le fixer :
https://d.sb/2016/11/gpg-inappropriate- … ice-errors

Dernière modification par passio (Le 17/04/2020, à 05:07)

Hors ligne

#3 Le 19/04/2020, à 14:58

LeoMajor

Re : Crypter une phrase dans une autre phrase sur le long terme.

bonjour,

l'option --armor (gpg) est équivalente à  -base64 (openssl enc). Le but recherché est de pas avoir de binaire à la sortie.

gpg

:~$ gchiff=$(gpg --symmetric --armor <<<"bonjour")
:~$ echo "$gchiff"
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1

jA0EBwMCMjshUq4Fn7dg0j0B5uDOEJ/38gxGjf1rdEpGUCfogluDGiJmIZzSLeMU
jsKhJOSXW899Naf72H+YCIKVr1MP+HWrErJ/IuB9
=zrXU
-----END PGP MESSAGE-----
:~$ dgchiff=$(gpg -d --armor <<<"$gchiff")
:~$ echo "$dgchiff"
bonjour

openssl

:~$ chiff=$(openssl enc -e -aes-256-cbc -base64 <<<"bonjour")
:~$ echo "$chiff"
U2FsdGVkX19aecMmaTrJIuEWByjwY3tnVjlB4HTg8MM=
:~$ dchiff=$(openssl enc -d -aes-256-cbc -base64 <<<"$chiff")
:~$ echo "$dchiff"
bonjour
man openssl enc

appuyez sur q, puis enter/return

----
pour la passphrase ( -k), 2 cas possibles a et b :
0/

openssl rand -base64 1024 > /tmp/clef_password

   
a/

openssl ... -pass file:/tmp/clef_password  -k secret ...
openssl enc -e -bf-cbc -in /tmp/bonjour -out /tmp/chiffre -pass file:/tmp/clef_password  -k secret -base64

b/ substitution par -S -K -iv

openssl enc -e -bf-cbc -in /tmp/bonjour -out /tmp/chiffre -pass file:/tmp/clef_password -k secret -base64 -p
salt=66029ABB35CD0059
key=2867E139781A73DE79F592EFD5F67F7B
iv =A5707E18033BFF02

openssl enc -e -bf-cbc -in /tmp/bonjour -out /tmp/chiffre -S 66029ABB35CD0059 -K 2867E139781A73DE79F592EFD5F67F7B -iv A5707E18033BFF02 -k secret -base64 -p
salt=66029ABB35CD0059
key=2867E139781A73DE79F592EFD5F67F7B
iv =A5707E18033BFF02

openssl enc -e -bf-cbc -in /tmp/aurevoir -out /tmp/auchiffre -S 66029ABB35CD0059 -K 2867E139781A73DE79F592EFD5F67F7B -iv A5707E18033BFF02 -k secret -base64 

openssl enc -d -bf-cbc -in /tmp/chiffre -S 66029ABB35CD0059 -K 2867E139781A73DE79F592EFD5F67F7B -iv A5707E18033BFF02 -k secret -base64
openssl enc -d -bf-cbc -in /tmp/auchiffre -S 66029ABB35CD0059 -K 2867E139781A73DE79F592EFD5F67F7B -iv A5707E18033BFF02 -k secret -base64

pour le password, plusieurs syntaxes posssibles ; secret est le password

-pass pass:secret
-pass stdin
echo "secret" | openssl enc -d -bf-cbc -in /tmp/chiffre -out /tmp/dechiffre -pass stdin
openssl enc -e -bf-cbc -in /tmp/bonjour -out /tmp/chiffre -pass /tmp/password

...

Hors ligne