<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.wiki.jrudevels.org/index.php?action=history&amp;feed=atom&amp;title=Psi%2FPasswordRecover</id>
		<title>Psi/PasswordRecover - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://www.wiki.jrudevels.org/index.php?action=history&amp;feed=atom&amp;title=Psi%2FPasswordRecover"/>
		<link rel="alternate" type="text/html" href="http://www.wiki.jrudevels.org/index.php?title=Psi/PasswordRecover&amp;action=history"/>
		<updated>2026-04-28T04:03:29Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>http://www.wiki.jrudevels.org/index.php?title=Psi/PasswordRecover&amp;diff=19287&amp;oldid=prev</id>
		<title>Binary: Reverted edits by 46.17.63.246 (talk) to last revision by Leksey</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.jrudevels.org/index.php?title=Psi/PasswordRecover&amp;diff=19287&amp;oldid=prev"/>
				<updated>2015-11-17T16:35:46Z</updated>
		
		<summary type="html">&lt;p&gt;Reverted edits by &lt;a href=&quot;/Special:Contributions/46.17.63.246&quot; title=&quot;Special:Contributions/46.17.63.246&quot;&gt;46.17.63.246&lt;/a&gt; (&lt;a href=&quot;/index.php?title=User_talk:46.17.63.246&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:46.17.63.246 (page does not exist)&quot;&gt;talk&lt;/a&gt;) to last revision by &lt;a href=&quot;/User:Leksey&quot; title=&quot;User:Leksey&quot;&gt;Leksey&lt;/a&gt;&lt;/p&gt;
&lt;a href=&quot;http://www.wiki.jrudevels.org/index.php?title=Psi/PasswordRecover&amp;amp;diff=19287&amp;amp;oldid=17281&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Binary</name></author>	</entry>

	<entry>
		<id>http://www.wiki.jrudevels.org/index.php?title=Psi/PasswordRecover&amp;diff=17281&amp;oldid=prev</id>
		<title>46.17.63.246: /* Декодирование пароля на Perl */</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.jrudevels.org/index.php?title=Psi/PasswordRecover&amp;diff=17281&amp;oldid=prev"/>
				<updated>2015-11-16T17:10:03Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Декодирование пароля на Perl&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;http://www.wiki.jrudevels.org/index.php?title=Psi/PasswordRecover&amp;amp;diff=17281&amp;amp;oldid=14108&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>46.17.63.246</name></author>	</entry>

	<entry>
		<id>http://www.wiki.jrudevels.org/index.php?title=Psi/PasswordRecover&amp;diff=14108&amp;oldid=prev</id>
		<title>Leksey: Декодирование на perl</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.jrudevels.org/index.php?title=Psi/PasswordRecover&amp;diff=14108&amp;oldid=prev"/>
				<updated>2011-10-29T15:15:42Z</updated>
		
		<summary type="html">&lt;p&gt;Декодирование на perl&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 15:15, 29 October 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Декодирование пароля на Perl ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;В качестве аргументов инлайну на Perl нужно указать JID и хэш из тега&amp;#160; &amp;#160; &amp;lt;password type=&amp;quot;QString&amp;quot;&amp;gt;, который находится в файле ~/.psi/profiles/default/accounts.xml&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Например:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; perl -le '($jid,$pw)=@ARGV;$pw=~s/..(..)/chr hex$1/ge; print substr($pw^$jid,0,length$pw)' leksey@ya.ru 000100020003007e&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== На python ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Скрипт для восстановления пароля в [[Psi]] (не работает с Psi старше 0.13 - способ криптования не изменился, поменялся формат конфига) под Unix-совместимыми системами. Также должен функционировать и в MS Windows, но это не проверялось.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Скрипт для восстановления пароля в [[Psi]] (не работает с Psi старше 0.13 - способ криптования не изменился, поменялся формат конфига) под Unix-совместимыми системами. Также должен функционировать и в MS Windows, но это не проверялось.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Leksey</name></author>	</entry>

	<entry>
		<id>http://www.wiki.jrudevels.org/index.php?title=Psi/PasswordRecover&amp;diff=13393&amp;oldid=prev</id>
		<title>Leksey: уже надо переделывать</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.jrudevels.org/index.php?title=Psi/PasswordRecover&amp;diff=13393&amp;oldid=prev"/>
				<updated>2011-03-19T17:07:23Z</updated>
		
		<summary type="html">&lt;p&gt;уже надо переделывать&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 17:07, 19 March 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Скрипт для восстановления пароля в [[Psi]] под Unix-совместимыми системами. Также должен функционировать и в MS Windows, но это не проверялось.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Скрипт для восстановления пароля в [[Psi]] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(не работает с Psi старше 0.13 - способ криптования не изменился, поменялся формат конфига) &lt;/ins&gt;под Unix-совместимыми системами. Также должен функционировать и в MS Windows, но это не проверялось.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;PRE&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;PRE&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Leksey</name></author>	</entry>

	<entry>
		<id>http://www.wiki.jrudevels.org/index.php?title=Psi/PasswordRecover&amp;diff=10967&amp;oldid=prev</id>
		<title>Leksey: New page: Скрипт для восстановления пароля в Psi под Unix-совместимыми системами. Также должен функционировать и ...</title>
		<link rel="alternate" type="text/html" href="http://www.wiki.jrudevels.org/index.php?title=Psi/PasswordRecover&amp;diff=10967&amp;oldid=prev"/>
				<updated>2010-01-28T11:07:28Z</updated>
		
		<summary type="html">&lt;p&gt;New page: Скрипт для восстановления пароля в &lt;a href=&quot;/Psi&quot; title=&quot;Psi&quot;&gt;Psi&lt;/a&gt; под Unix-совместимыми системами. Также должен функционировать и ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Скрипт для восстановления пароля в [[Psi]] под Unix-совместимыми системами. Также должен функционировать и в MS Windows, но это не проверялось.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- encoding: utf-8 -*-&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
  Script to decode Psi passwords stored in config.xml file.&lt;br /&gt;
&lt;br /&gt;
  The code is based on psi-0.12 sources, so it's distributed under&lt;br /&gt;
  the same license.&lt;br /&gt;
&lt;br /&gt;
  Copyright (C) 2008  Leonid Evdokimov &amp;lt;leon@darkk.net.ru&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  This program is free software; you can redistribute it and/or&lt;br /&gt;
  modify it under the terms of the GNU General Public License&lt;br /&gt;
  as published by the Free Software Foundation; either version 2&lt;br /&gt;
  of the License, or (at your option) any later version.&lt;br /&gt;
 &lt;br /&gt;
  This program is distributed in the hope that it will be useful,&lt;br /&gt;
  but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
  GNU General Public License for more details.&lt;br /&gt;
 &lt;br /&gt;
  You should have received a copy of the GNU General Public License&lt;br /&gt;
  along with this library; if not, write to the Free Software&lt;br /&gt;
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;
&lt;br /&gt;
  Origin:&lt;br /&gt;
  http://darkk.net.ru/home/bin/psi-pass-dump.py&lt;br /&gt;
&lt;br /&gt;
  Changelog:&lt;br /&gt;
  0.1 - Initial revision.&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def encodePassword(password, key):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    // psi-0.12/src/common.cpp:113:QString encodePassword(const QString &amp;amp;pass, const QString &amp;amp;key)&lt;br /&gt;
    QString encodePassword(const QString &amp;amp;pass, const QString &amp;amp;key)&lt;br /&gt;
    {&lt;br /&gt;
            QString result;&lt;br /&gt;
            int n1, n2;&lt;br /&gt;
&lt;br /&gt;
            if(key.length() == 0)&lt;br /&gt;
                    return pass;&lt;br /&gt;
&lt;br /&gt;
            for(n1 = 0, n2 = 0; n1 &amp;lt; pass.length(); ++n1) {&lt;br /&gt;
                    ushort x = pass.at(n1).unicode() ^ key.at(n2++).unicode();&lt;br /&gt;
                    QString hex;&lt;br /&gt;
                    hex.sprintf(&amp;quot;%04x&amp;quot;, x);&lt;br /&gt;
                    result += hex;&lt;br /&gt;
                    if(n2 &amp;gt;= key.length())&lt;br /&gt;
                            n2 = 0;&lt;br /&gt;
            }&lt;br /&gt;
            return result;&lt;br /&gt;
    }&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if len(key) == 0:&lt;br /&gt;
        return password&lt;br /&gt;
&lt;br /&gt;
    result = u&amp;quot;&amp;quot;&lt;br /&gt;
    for offset, char in enumerate(password):&lt;br /&gt;
        x = ord(char) ^ ord(key[offset % len(key)])&lt;br /&gt;
        result += &amp;quot;%04x&amp;quot; % x&lt;br /&gt;
    return result&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def decodePassword(password, key):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    // psi-0.12/src/common.cpp:132:QString decodePassword(const QString &amp;amp;pass, const QString &amp;amp;key)&lt;br /&gt;
    QString decodePassword(const QString &amp;amp;pass, const QString &amp;amp;key)&lt;br /&gt;
    {       &lt;br /&gt;
            QString result;&lt;br /&gt;
            int n1, n2;&lt;br /&gt;
&lt;br /&gt;
            if(key.length() == 0)&lt;br /&gt;
                    return pass;&lt;br /&gt;
&lt;br /&gt;
            for(n1 = 0, n2 = 0; n1 &amp;lt; pass.length(); n1 += 4) {&lt;br /&gt;
                    ushort x = 0;&lt;br /&gt;
                    if(n1 + 4 &amp;gt; pass.length())&lt;br /&gt;
                            break;&lt;br /&gt;
                    x += QString(pass.at(n1)).toInt(NULL,16)*4096;&lt;br /&gt;
                    x += QString(pass.at(n1+1)).toInt(NULL,16)*256;&lt;br /&gt;
                    x += QString(pass.at(n1+2)).toInt(NULL,16)*16;&lt;br /&gt;
                    x += QString(pass.at(n1+3)).toInt(NULL,16);&lt;br /&gt;
                    QChar c(x ^ key.at(n2++).unicode());&lt;br /&gt;
                    result += c;&lt;br /&gt;
                    if(n2 &amp;gt;= key.length())&lt;br /&gt;
                            n2 = 0;&lt;br /&gt;
            }&lt;br /&gt;
            return result;&lt;br /&gt;
    }&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if len(key) == 0:&lt;br /&gt;
        return password&lt;br /&gt;
&lt;br /&gt;
    assert len(password) % 4 == 0&lt;br /&gt;
&lt;br /&gt;
    result = u&amp;quot;&amp;quot;&lt;br /&gt;
    password = [int(password[i:i+4], 16) for i in xrange(0, len(password), 4)]&lt;br /&gt;
    for offset, char in enumerate(password):&lt;br /&gt;
        x = char ^ ord(key[offset % len(key)])&lt;br /&gt;
        result += unichr(x)&lt;br /&gt;
    return result&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    import xml.etree.ElementTree as ElementTree&lt;br /&gt;
    import os.path&lt;br /&gt;
    tree = ElementTree.parse(os.path.expanduser('~/.psi/profiles/default/config.xml'))&lt;br /&gt;
    for acc in tree.findall('//accounts/account'):&lt;br /&gt;
        jid = acc.findtext('jid')&lt;br /&gt;
        password = acc.findtext('password')&lt;br /&gt;
        if password:&lt;br /&gt;
            print jid, decodePassword(password, jid)&lt;br /&gt;
        else:&lt;br /&gt;
            print jid, u&amp;quot;None&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# vim:set tabstop=4 softtabstop=4 shiftwidth=4: &lt;br /&gt;
# vim:set expandtab:&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Отличие от [http://darkk.net.ru/home/bin/psi-pass-dump.py оригинального файла] в том, что из строки ''print jid, u&amp;quot;None&amp;quot;'' убраны Unicode-символы, чтобы скрипт работал в KOI8-R окружении ОС FreeBSD.&lt;/div&gt;</summary>
		<author><name>Leksey</name></author>	</entry>

	</feed>