Импорт KeePass БД паролей в KWallet

от автора

Всем привет.

На предприятии где а работаю очень любат всякие штучки для «безопасности» и к сожалению все по винду. Но вот незадача, у меня стоит линукс а мне прислали пароли в БД для KeePass (заметка: не хочу ставить mono приложение KeePass под линукс). Windows виртуальная машина стоит, но держать ее открытой всегда не охота, всетаки память отъедает которой и так не хватает. Вот тогда-то у меня и родилась идея перенести все пароли из этой базы данных для KeePass в мой KWallet.

Кстати, для тех кто не знаком с KWallet немного опишу его. Это программа которая входит в стандартную поставку KDE и предназначена для хранения секретной информации которой пользуются KDE приложения. Здесь у меня хранятся пароли на различных сайтах, ключи доступа и т.п. Иначе говоря это тоже самое что KeePass но под Линукс. И есть одно из существенных преимуществ это то что мне не надо руками копи-пастить пароли в поля для ввода логина и пароля, а программы сами это достают из моего Бумажника, единственное что просят ввести пароль для открытия бумажника если он закрыт. Очень удобно, тем более что это прекрасно интегрируется с приложениями. И я не удивлюсь если Microsoft это вскоре, как и все остальное, скопирует к себе в винду.

Итак продолжим. перенос паролей я подумал сделать как можно проще, а именно экспортировать пароли из KeePass в XML, применить трансформацию в формат XML удобоваримый KWallet и потом импортировать в мой бумажник. Подумал-сделал, тем более что эту статью я пишу дольше чем писал XSLT преобразование.

Кстатит вот оно:

<?xml version="1.0" encoding="UTF-8"?>  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">   <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />   <xsl:template match="/">       <wallet name="kdewallet"> 	<xsl:for-each select="KeePassFile/Root//Group"> 	  <folder name="{Name}"> 	    <xsl:for-each select="Entry"> 	      <map name="{String[Key/text() = 'Title']/Value}"> 		  <mapentry name="{String[Key/text() = 'UserName']/Value}"><xsl:value-of select="String[Key/text() = 'Password']/Value"/></mapentry> 	      </map> 	    </xsl:for-each> 	  </folder> 	</xsl:for-each>       </wallet>   </xsl:template> </xsl:stylesheet> 

А для преобразования я использовал xsltproc вот этой командой:

xsltproc -o kwallet.xml ./keepas2kwallet.xsl ./keepass.xml 

Полученный файлик kwallet.xml успешно импортировал в мой бумажник. И теперь все пароли из KeePass прекрасно живут в моем KWallet бумажнике.

А структура импортированного бумажника получается такой:

  1. KeePass группа это отдельный каталог в KWallet
  2. KeePass заголовок записи это имя соответсвия
  3. KeePass имя пользователя и пароль хранятся в соответствии как есть.

Заметка 1: Хочу подметить что это я сделал для того чтобы пользоваться только нативными приложениями линукс, а не виндовыми программами портированными под Линукс.
Заметка 2: Эту статью я пишу чтобы поделиться с сообществом результатом моего труда, вдруг кому пригодится.

Пользуйтесь наздоровье

ссылка на оригинал статьи http://habrahabr.ru/post/190880/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *