<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://jawiki.ru/index.php?action=history&amp;feed=atom&amp;title=Talk%3APassword_Recovering</id>
		<title>Talk:Password Recovering - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://jawiki.ru/index.php?action=history&amp;feed=atom&amp;title=Talk%3APassword_Recovering"/>
		<link rel="alternate" type="text/html" href="http://jawiki.ru/index.php?title=Talk:Password_Recovering&amp;action=history"/>
		<updated>2026-04-05T23:32:01Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>http://jawiki.ru/index.php?title=Talk:Password_Recovering&amp;diff=3777&amp;oldid=prev</id>
		<title>Leksey: PSI recoverer</title>
		<link rel="alternate" type="text/html" href="http://jawiki.ru/index.php?title=Talk:Password_Recovering&amp;diff=3777&amp;oldid=prev"/>
				<updated>2007-04-12T14:06:11Z</updated>
		
		<summary type="html">&lt;p&gt;PSI recoverer&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Говорят, это код на [[Python]] может восстанавливать тот пароль, что хранится config.xml клиента [[PSI]].&lt;br /&gt;
&lt;br /&gt;
Я бы прикрутил это к вебу. Либо надо сделать с помощью соответствующей утилки exe-шник, который будет выполнятся без установки интерпретатора. &lt;br /&gt;
&lt;br /&gt;
Тогда еще подобную утилку для [[Tkabber]] надо найти и все будет нормально.&lt;br /&gt;
&lt;br /&gt;
Только тогда надо прикрутить парсинг config.xml. Как я понял, оттуда нам нужен [[hash|хеш]] и [[JID]].&lt;br /&gt;
&lt;br /&gt;
 def hexChar2int(c):&lt;br /&gt;
    if (c &amp;gt;= 'A' and c &amp;lt;= 'F'):&lt;br /&gt;
        return ord(c) - ord('A') + 10&lt;br /&gt;
    elif(c &amp;gt;= 'a' and c &amp;lt;= 'f'):&lt;br /&gt;
        return ord(c) - ord('a') + 10&lt;br /&gt;
    elif(c &amp;gt;= '0' and c &amp;lt;= '9'):&lt;br /&gt;
        return ord(c) - ord('0')&lt;br /&gt;
        return 0&lt;br /&gt;
&lt;br /&gt;
 def decodePassword(password,key):&lt;br /&gt;
    result=&amp;quot;&amp;quot;&lt;br /&gt;
    n1=0&lt;br /&gt;
    n2=0&lt;br /&gt;
&lt;br /&gt;
    if(len(key) == 0):&lt;br /&gt;
        return password&lt;br /&gt;
&lt;br /&gt;
        n2=0&lt;br /&gt;
    for n1 in range( 0, len(password), 4):&lt;br /&gt;
        x = 0&lt;br /&gt;
        if(n1 + 4 &amp;gt; len(password)):&lt;br /&gt;
            break&lt;br /&gt;
        x += hexChar2int(password[n1])*4096&lt;br /&gt;
        x += hexChar2int(password[n1+1])*256&lt;br /&gt;
        x += hexChar2int(password[n1+2])*16&lt;br /&gt;
        x += hexChar2int(password[n1+3])&lt;br /&gt;
        c=x ^ ord(key[n2])&lt;br /&gt;
        n2+=1&lt;br /&gt;
        result += chr(c)&lt;br /&gt;
        if(n2 &amp;gt;= len(key)):&lt;br /&gt;
            n2 = 0&lt;br /&gt;
    return result&lt;br /&gt;
   &lt;br /&gt;
 print decodePassword(&amp;quot;001101010101011&amp;quot;,&amp;quot;axet@jabber.ru&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Источник http://docs.google.com/Doc?id=dd4b849c_53cbd863&lt;/div&gt;</summary>
		<author><name>Leksey</name></author>	</entry>

	</feed>