<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=JavaScript_DHTML%2FSecurity%2FVigenere</id>
		<title>JavaScript DHTML/Security/Vigenere - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=JavaScript_DHTML%2FSecurity%2FVigenere"/>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_DHTML/Security/Vigenere&amp;action=history"/>
		<updated>2026-04-04T15:29:59Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wbex.ru/index.php?title=JavaScript_DHTML/Security/Vigenere&amp;diff=3700&amp;oldid=prev</id>
		<title> в 09:59, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_DHTML/Security/Vigenere&amp;diff=3700&amp;oldid=prev"/>
				<updated>2010-05-26T09:59:55Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 09:59, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://wbex.ru/index.php?title=JavaScript_DHTML/Security/Vigenere&amp;diff=3701&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_DHTML/Security/Vigenere&amp;diff=3701&amp;oldid=prev"/>
				<updated>2010-05-26T07:27:21Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Vigenere encode and decode==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Vignere Cipher&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
      CryptoMX Tools&lt;br /&gt;
      Copyright (C) 2004 - 2006 Derek Buitenhuis&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;
      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;
      You should have received a copy of the GNU General Public License&lt;br /&gt;
      along with this program; 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;
    --&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body bgcolor=#FFFFFF text=#000000&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;script&amp;gt;&lt;br /&gt;
function Vigenere (input, key, forward)&lt;br /&gt;
{&lt;br /&gt;
  if (key == null)&lt;br /&gt;
    key = &amp;quot;&amp;quot;;&lt;br /&gt;
  var alphabet =   &amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ&amp;quot;&lt;br /&gt;
                 + &amp;quot;abcdefghijklmnopqrstuvwxyz&amp;quot;;&lt;br /&gt;
  // Validate key:&lt;br /&gt;
  key = key . toUpperCase ();&lt;br /&gt;
  var key_len = key . length;&lt;br /&gt;
  var i;&lt;br /&gt;
  var adjusted_key = &amp;quot;&amp;quot;;&lt;br /&gt;
  for (i = 0; i &amp;lt; key_len; i ++)&lt;br /&gt;
  {&lt;br /&gt;
    var key_char = alphabet . indexOf (key . charAt (i));&lt;br /&gt;
    if (key_char &amp;lt; 0)&lt;br /&gt;
      continue;&lt;br /&gt;
    adjusted_key += alphabet . charAt (key_char);&lt;br /&gt;
  }&lt;br /&gt;
  key = adjusted_key;&lt;br /&gt;
  key_len = key . length;&lt;br /&gt;
  if (key_len == 0)&lt;br /&gt;
  {&lt;br /&gt;
    alert (&amp;quot;You forgot to supply a key!&amp;quot;);&lt;br /&gt;
    key = &amp;quot;a&amp;quot;;&lt;br /&gt;
    key_len = 1;&lt;br /&gt;
  }&lt;br /&gt;
  // Transform input:&lt;br /&gt;
  var input_len = input . length;&lt;br /&gt;
  var output = &amp;quot;&amp;quot;;&lt;br /&gt;
  var key_index = 0;&lt;br /&gt;
  var in_tag = false;&lt;br /&gt;
  for (i = 0; i &amp;lt; input_len; i ++)&lt;br /&gt;
  {&lt;br /&gt;
    var input_char = input . charAt (i);&lt;br /&gt;
    if (input_char == &amp;quot;&amp;lt;&amp;quot;)&lt;br /&gt;
      in_tag = true;&lt;br /&gt;
    else if (input_char == &amp;quot;&amp;gt;&amp;quot;)&lt;br /&gt;
      in_tag = false;&lt;br /&gt;
    if (in_tag)&lt;br /&gt;
    {&lt;br /&gt;
      output += input_char;&lt;br /&gt;
      continue;&lt;br /&gt;
    }&lt;br /&gt;
    var input_char_value = alphabet . indexOf (input_char);&lt;br /&gt;
    if (input_char_value &amp;lt; 0)&lt;br /&gt;
    {&lt;br /&gt;
      output += input_char;&lt;br /&gt;
      continue;&lt;br /&gt;
    }&lt;br /&gt;
    var lowercase = input_char_value &amp;gt;= 26 ? true : false;&lt;br /&gt;
    if (forward)&lt;br /&gt;
      input_char_value += alphabet . indexOf (key . charAt (key_index));&lt;br /&gt;
    else&lt;br /&gt;
      input_char_value -= alphabet . indexOf (key . charAt (key_index));&lt;br /&gt;
    input_char_value += 26;&lt;br /&gt;
    if (lowercase)&lt;br /&gt;
      input_char_value = input_char_value % 26 + 26;&lt;br /&gt;
    else&lt;br /&gt;
      input_char_value %= 26;&lt;br /&gt;
    output += alphabet . charAt (input_char_value);&lt;br /&gt;
    key_index = (key_index + 1) % key_len;&lt;br /&gt;
  }&lt;br /&gt;
  return output;&lt;br /&gt;
}&lt;br /&gt;
function runcoder (dir)&lt;br /&gt;
{&lt;br /&gt;
  document . form . output . value = Vigenere (document . form . input . value, document . form . key . value, dir);&lt;br /&gt;
/*  A bug in IE prevents this section from working correctly.&lt;br /&gt;
  with (document . form)&lt;br /&gt;
  {&lt;br /&gt;
    output . value = Vigenere (input . value, key . value, dir);&lt;br /&gt;
  }&lt;br /&gt;
*/&lt;br /&gt;
}&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;form name=form&amp;gt;&lt;br /&gt;
      &amp;lt;table border cellspacing=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            Input:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;input type=button onClick=&amp;quot;this.form.input.value=&amp;quot;&amp;quot;;&amp;quot; value=&amp;quot;clear&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;textarea name=input rows=10 cols=60 wrap=virtual&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            Key:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;input type=button onClick=&amp;quot;this.form.key.value=&amp;quot;&amp;quot;;&amp;quot; value=&amp;quot;clear&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;textarea name=key rows=5 cols=60 wrap=virtual&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;Coding direction:&amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;input type=button value=&amp;quot;encode&amp;quot; onClick=&amp;quot;runcoder (true);&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;input type=button value=&amp;quot;decode&amp;quot; onClick=&amp;quot;runcoder (false);&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            Output:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;input type=button onClick=&amp;quot;this.form.output.value=&amp;quot;&amp;quot;;&amp;quot; value=&amp;quot;clear&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
          &amp;lt;td&amp;gt;&lt;br /&gt;
            &amp;lt;textarea name=output rows=10 cols=60 wrap=virtual&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;
          &amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>