Accueil Réparation de la base de données

Réparation de la base de données

Il peut arriver que la base de données de KeePass ne soit plus reconnue et bien souvent il s’agit d’un problème lié au fichier .KDBX qui est corrompu.

S’ensuit alors un cortège de messages d’erreur qui en arrivent tous le plus souvent à cette conclusion « Failed to load the specified file ! ».

common language

Notre premier suspect est ce fameux « Common Language Runtime » !

Il existe heureusement des solutions pour réparer votre base de données KeePass. Bon nombre d’articles existent sur le net sur ce sujet, cependant il est souvent question de « récupération de la base de données .

KDBX »  et non de « réparation » de la dite base. La nuance est dans le fait que pour une « récupération » le plus souvent, l’objectif principal est de récupérer le contenu de la base de données et donc de son contenu chiffré.

C’est une demande récurrente d’utilisateurs qui, et cela est bien évidemment dommage, oublient leur clé principale de KeePass.

N’oublions pas que le but premier de KeePass est la sécurisation de vos mots de passe et donc que pouvoir les récupérer alors que vous avez oublié votre clé principale est tout simplement impossible dans la pratique.

Cela dépend de la force de votre clé principale.

Pour effectuer une réparation de notre base de données KeePass contenu dans ce fameux fichier .kdbx, suivez le guide.

Cas n°1 : vous venez de faire une mise à jour Windows et votre fichier .kdbx n’est plus reconnu par Keepass

D’après beaucoup de remontées des utilisateurs de ce logiciel, il apparait clairement que certaines mises à jour de Windows peuvent tout simplement perturber le bon fonctionnement de KeePass pour lire votre base de données qui fonctionnait pourtant parfaitement.

Cela est également valable pour d’autres modifications importantes liées à votre système Windows.

La première chose à faire est de se pencher sur la plateforme Microsoft .NET car c’est bien souvent de là que vient le problème.

Toute mise à jour de Microsoft .NET peut d’ailleurs provoquer également ce souci lié à la lecture de votre base et il faut savoir que les mises à jour de cette plateforme se font justement par le biais de Microsoft Update.

Il vous faudra alors tout simplement installer Microsoft .NET avec la version qui fonctionnait auparavant avec KeePass.

microsoft.net et keepass

Réinstaller au propre une ancienne version de Microsoft .NET résout bien souvent ce souci.

 

Voici une recommandation de Microsoft à ce propos :

« Si votre système et vos logiciels sont récents, n’installez que la version 4 et 4.7.2. Si vous avez d’anciens logiciels qui ne fonctionnent plus, installez en plus la version 1.1 et 3.5. Les mises à jour Windows Update feront le reste. »

Il ne faut donc pas désinstaller et réinstaller Microsoft .NET pas plus que revenir en arrière en supprimant votre dernière mise à jour Microsoft Update, vous pouvez tout simplement ajouter d’autres versions de Microsoft .NET en plus de celle que vous avez déjà en place sur votre système.

C’est la version 2 de Microsoft .NET qu’il faudra ajouter pour KeePass

A ce jour, nos utilisateurs nous confirment que la version 2 de Microsoft .NET est bien celle qui reste la plus stable pour KeePass. C’est donc la version à télécharger et à installer. Il vous restera alors une dernière manipulation à faire :

Il ne vous restera plus qu’à modifier le fichier KeePass.exe.config qui se trouve avec KeePass.exe dans le dossier correspondant (normalement situé dans Program Files) afin de faire pointer KeePass vers la version 2 de Microsoft .NET

Votre fichier KeePass.exe.config doit ressembler à cela :

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

    <startup>

        <supportedRuntime version="v4.5" />

        <supportedRuntime version="v4.0" />

        <supportedRuntime version="v2.0.50727" />

    </startup>

    <runtime>

        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

            <dependentAssembly>

                <assemblyIdentity name="KeePass"

                    publicKeyToken="fed2ed7716aecf5c"

                    culture="neutral" />

                <bindingRedirect oldVersion="2.0.9.0-2.29.0.0"

                    newVersion="2.29.0.17893" />

            </dependentAssembly>

        </assemblyBinding>

        <enforceFIPSPolicy enabled="false" />

        <loadFromRemoteSources enabled="true" />

    </runtime>

    <appSettings>

        <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />

    </appSettings>

</configuration>

Nous allons juste supprimer cette ligne :

<supportedRuntime version="v4.5" /> and <supportedRuntime version="v4.0" />

Vous devriez donc obtenir comme fichier quelque chose comme cela :

<?xml version="1.0" encoding="utf-8" ?><configuration>    

<startup>        

<supportedRuntime version="v2.0.50727" />    

</startup>    

<runtime>        

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">            

<dependentAssembly>                

<assemblyIdentity name="KeePass"                    publicKeyToken="fed2ed7716aecf5c"                    culture="neutral" />                

<bindingRedirect oldVersion="2.0.9.0-2.29.0.0"                    newVersion="2.29.0.17893" />    

</dependentAssembly>        

</assemblyBinding>        

<enforceFIPSPolicy enabled="false" />        

<loadFromRemoteSources enabled="true" />    

</runtime>    

<appSettings>        

<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />    

</appSettings>

</configuration>

Enregistrez votre fichier et votre base de données KeePass ainsi que tous ses mots de passe seront de nouveau accessible !

reapir database keepass

« Repair database » est la solution ultime et est disponible sous Windows, Mac OSX et Linux

Cas n°2 : la réparation de votre base de données par KeePass

C’est la solution ultime lorsque l’on ne peut plus accéder à sa base de données. KeePass intègre une option de réparation de fichier .KDBX.

L’option « Repair Mode » n’est disponible que sur la version 2 de KeePass. Nous vous invitons donc à basculer sur cette version si vous n’êtes pas déjà dessus.

Le principe est très simple : nous allons tenter via KeePass de faire un import de votre base de données qui ne fonctionne plus dans une nouvelle.

Pour cela, il vous faut tout simplement créer une nouvelle base de données sous KeePass, exactement comme vous l’avez fait lors de sa toute première utilisation.

Ensuite, rendez-vous dans File -> Import et sélectionnez votre base de données en choisissant le format KDBX (2.x) (Repair Mode).

Si votre base de données est encore récupérable, alors cette importation dans une nouvelle base de données avec ce mode « réparation » devrait vous permettre d’accéder de nouveau à tous vos mots de passe sur KeePass.


Il arrive malheureusement que votre base de données soit trop corrompue pour une réparation par KeePass. Ici, KeePass retrouve bien la structure de tout ce qui a été sauvegardé mais n’a plus accès aux entrées (qui possèdent justement le contenu).