<?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%2FSHA_256</id>
		<title>JavaScript DHTML/Security/SHA 256 - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=JavaScript_DHTML%2FSecurity%2FSHA_256"/>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_DHTML/Security/SHA_256&amp;action=history"/>
		<updated>2026-04-04T21:15:08Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wbex.ru/index.php?title=JavaScript_DHTML/Security/SHA_256&amp;diff=3656&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/SHA_256&amp;diff=3656&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/SHA_256&amp;diff=3657&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_DHTML/Security/SHA_256&amp;diff=3657&amp;oldid=prev"/>
				<updated>2010-05-26T07:27:08Z</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;==SHA-256 Crypt==&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;!--&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;title&amp;gt;SHA-256 Crypt&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;!-- sha256.js --&amp;gt;&lt;br /&gt;
    &amp;lt;script language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
var chrsz   = 8; &lt;br /&gt;
var hexcase = 0;&lt;br /&gt;
function safe_add (x, y) {&lt;br /&gt;
  var lsw = (x &amp;amp; 0xFFFF) + (y &amp;amp; 0xFFFF);&lt;br /&gt;
  var msw = (x &amp;gt;&amp;gt; 16) + (y &amp;gt;&amp;gt; 16) + (lsw &amp;gt;&amp;gt; 16);&lt;br /&gt;
  return (msw &amp;lt;&amp;lt; 16) | (lsw &amp;amp; 0xFFFF);&lt;br /&gt;
}&lt;br /&gt;
function S (X, n) {return ( X &amp;gt;&amp;gt;&amp;gt; n ) | (X &amp;lt;&amp;lt; (32 - n));}&lt;br /&gt;
function R (X, n) {return ( X &amp;gt;&amp;gt;&amp;gt; n );}&lt;br /&gt;
function Ch(x, y, z) {return ((x &amp;amp; y) ^ ((~x) &amp;amp; z));}&lt;br /&gt;
function Maj(x, y, z) {return ((x &amp;amp; y) ^ (x &amp;amp; z) ^ (y &amp;amp; z));}&lt;br /&gt;
function Sigma0256(x) {return (S(x, 2) ^ S(x, 13) ^ S(x, 22));}&lt;br /&gt;
function Sigma1256(x) {return (S(x, 6) ^ S(x, 11) ^ S(x, 25));}&lt;br /&gt;
function Gamma0256(x) {return (S(x, 7) ^ S(x, 18) ^ R(x, 3));}&lt;br /&gt;
function Gamma1256(x) {return (S(x, 17) ^ S(x, 19) ^ R(x, 10));}&lt;br /&gt;
function Sigma0512(x) {return (S(x, 28) ^ S(x, 34) ^ S(x, 39));}&lt;br /&gt;
function Sigma1512(x) {return (S(x, 14) ^ S(x, 18) ^ S(x, 41));}&lt;br /&gt;
function Gamma0512(x) {return (S(x, 1) ^ S(x, 8) ^ R(x, 7));}&lt;br /&gt;
function Gamma1512(x) {return (S(x, 19) ^ S(x, 61) ^ R(x, 6));}&lt;br /&gt;
function core_sha256 (m, l) {&lt;br /&gt;
    var K = new Array(0x428A2F98,0x71374491,0xB5C0FBCF,0xE9B5DBA5,0x3956C25B,0x59F111F1,0x923F82A4,0xAB1C5ED5,0xD807AA98,0x12835B01,0x243185BE,0x550C7DC3,0x72BE5D74,0x80DEB1FE,0x9BDC06A7,0xC19BF174,0xE49B69C1,0xEFBE4786,0xFC19DC6,0x240CA1CC,0x2DE92C6F,0x4A7484AA,0x5CB0A9DC,0x76F988DA,0x983E5152,0xA831C66D,0xB00327C8,0xBF597FC7,0xC6E00BF3,0xD5A79147,0x6CA6351,0x14292967,0x27B70A85,0x2E1B2138,0x4D2C6DFC,0x53380D13,0x650A7354,0x766A0ABB,0x81C2C92E,0x92722C85,0xA2BFE8A1,0xA81A664B,0xC24B8B70,0xC76C51A3,0xD192E819,0xD6990624,0xF40E3585,0x106AA070,0x19A4C116,0x1E376C08,0x2748774C,0x34B0BCB5,0x391C0CB3,0x4ED8AA4A,0x5B9CCA4F,0x682E6FF3,0x748F82EE,0x78A5636F,0x84C87814,0x8CC70208,0x90BEFFFA,0xA4506CEB,0xBEF9A3F7,0xC67178F2);&lt;br /&gt;
    var HASH = new Array(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19);&lt;br /&gt;
    var W = new Array(64);&lt;br /&gt;
    var a, b, c, d, e, f, g, h, i, j;&lt;br /&gt;
    var T1, T2;&lt;br /&gt;
    m[l &amp;gt;&amp;gt; 5] |= 0x80 &amp;lt;&amp;lt; (24 - l % 32);&lt;br /&gt;
    m[((l + 64 &amp;gt;&amp;gt; 9) &amp;lt;&amp;lt; 4) + 15] = l;&lt;br /&gt;
    for ( var i = 0; i&amp;lt;m.length; i+=16 ) {&lt;br /&gt;
        a = HASH[0];&lt;br /&gt;
        b = HASH[1];&lt;br /&gt;
        c = HASH[2];&lt;br /&gt;
        d = HASH[3];&lt;br /&gt;
        e = HASH[4];&lt;br /&gt;
        f = HASH[5];&lt;br /&gt;
        g = HASH[6];&lt;br /&gt;
        h = HASH[7];&lt;br /&gt;
        for ( var j = 0; j&amp;lt;64; j++) {&lt;br /&gt;
            if (j &amp;lt; 16) W[j] = m[j + i];&lt;br /&gt;
            else W[j] = safe_add(safe_add(safe_add(Gamma1256(W[j - 2]), W[j - 7]), Gamma0256(W[j - 15])), W[j - 16]);&lt;br /&gt;
            T1 = safe_add(safe_add(safe_add(safe_add(h, Sigma1256(e)), Ch(e, f, g)), K[j]), W[j]);&lt;br /&gt;
            T2 = safe_add(Sigma0256(a), Maj(a, b, c));&lt;br /&gt;
            h = g;&lt;br /&gt;
            g = f;&lt;br /&gt;
            f = e;&lt;br /&gt;
            e = safe_add(d, T1);&lt;br /&gt;
            d = c;&lt;br /&gt;
            c = b;&lt;br /&gt;
            b = a;&lt;br /&gt;
            a = safe_add(T1, T2);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        HASH[0] = safe_add(a, HASH[0]);&lt;br /&gt;
        HASH[1] = safe_add(b, HASH[1]);&lt;br /&gt;
        HASH[2] = safe_add(c, HASH[2]);&lt;br /&gt;
        HASH[3] = safe_add(d, HASH[3]);&lt;br /&gt;
        HASH[4] = safe_add(e, HASH[4]);&lt;br /&gt;
        HASH[5] = safe_add(f, HASH[5]);&lt;br /&gt;
        HASH[6] = safe_add(g, HASH[6]);&lt;br /&gt;
        HASH[7] = safe_add(h, HASH[7]);&lt;br /&gt;
    }&lt;br /&gt;
    return HASH;&lt;br /&gt;
}&lt;br /&gt;
function core_sha512 (m, l) {&lt;br /&gt;
    var K = new Array(0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc, 0x3956c25bf348b538, 0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118, 0xd807aa98a3030242, 0x12835b0145706fbe, 0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2, 0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235, 0xc19bf174cf692694, 0xe49b69c19ef14ad2, 0xefbe4786384f25e3, 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65, 0x2de92c6f592b0275, 0x4a7484aa6ea6e483, 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5, 0x983e5152ee66dfab, 0xa831c66d2db43210, 0xb00327c898fb213f, 0xbf597fc7beef0ee4, 0xc6e00bf33da88fc2, 0xd5a79147930aa725, 0x06ca6351e003826f, 0x142929670a0e6e70, 0x27b70a8546d22ffc, 0x2e1b21385c26c926, 0x4d2c6dfc5ac42aed, 0x53380d139d95b3df, 0x650a73548baf63de, 0x766a0abb3c77b2a8, 0x81c2c92e47edaee6, 0x92722c851482353b, 0xa2bfe8a14cf10364, 0xa81a664bbc423001, 0xc24b8b70d0f89791, 0xc76c51a30654be30, 0xd192e819d6ef5218, 0xd69906245565a910, 0xf40e35855771202a, 0x106aa07032bbd1b8, 0x19a4c116b8d2d0c8, 0x1e376c085141ab53, 0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8, 0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, 0x5b9cca4f7763e373, 0x682e6ff3d6b2b8a3, 0x748f82ee5defb2fc, 0x78a5636f43172f60, 0x84c87814a1f0ab72, 0x8cc702081a6439ec, 0x90befffa23631e28, 0xa4506cebde82bde9, 0xbef9a3f7b2c67915, 0xc67178f2e372532b, 0xca273eceea26619c, 0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178, 0x06f067aa72176fba, 0x0a637dc5a2c898a6, 0x113f9804bef90dae, 0x1b710b35131c471b, 0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc, 0x431d67c49c100d4c, 0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817);&lt;br /&gt;
    var HASH = new Array(0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1, 0x510e527fade682d1, 0x9b05688c2b3e6c1f, 0x1f83d9abfb41bd6b, 0x5be0cd19137e2179);&lt;br /&gt;
    var W = new Array(80);&lt;br /&gt;
    var a, b, c, d, e, f, g, h, i, j;&lt;br /&gt;
    var T1, T2;&lt;br /&gt;
}&lt;br /&gt;
function str2binb (str) {&lt;br /&gt;
  var bin = Array();&lt;br /&gt;
  var mask = (1 &amp;lt;&amp;lt; chrsz) - 1;&lt;br /&gt;
  for(var i = 0; i &amp;lt; str.length * chrsz; i += chrsz)&lt;br /&gt;
    bin[i&amp;gt;&amp;gt;5] |= (str.charCodeAt(i / chrsz) &amp;amp; mask) &amp;lt;&amp;lt; (24 - i%32);&lt;br /&gt;
  return bin;&lt;br /&gt;
}&lt;br /&gt;
function binb2str (bin) {&lt;br /&gt;
  var str = &amp;quot;&amp;quot;;&lt;br /&gt;
  var mask = (1 &amp;lt;&amp;lt; chrsz) - 1;&lt;br /&gt;
  for(var i = 0; i &amp;lt; bin.length * 32; i += chrsz)&lt;br /&gt;
    str += String.fromCharCode((bin[i&amp;gt;&amp;gt;5] &amp;gt;&amp;gt;&amp;gt; (24 - i%32)) &amp;amp; mask);&lt;br /&gt;
  return str;&lt;br /&gt;
}&lt;br /&gt;
function binb2hex (binarray) {&lt;br /&gt;
  var hex_tab = hexcase ? &amp;quot;0123456789ABCDEF&amp;quot; : &amp;quot;0123456789abcdef&amp;quot;;&lt;br /&gt;
  var str = &amp;quot;&amp;quot;;&lt;br /&gt;
  for(var i = 0; i &amp;lt; binarray.length * 4; i++)&lt;br /&gt;
  {&lt;br /&gt;
    str += hex_tab.charAt((binarray[i&amp;gt;&amp;gt;2] &amp;gt;&amp;gt; ((3 - i%4)*8+4)) &amp;amp; 0xF) +&lt;br /&gt;
           hex_tab.charAt((binarray[i&amp;gt;&amp;gt;2] &amp;gt;&amp;gt; ((3 - i%4)*8  )) &amp;amp; 0xF);&lt;br /&gt;
  }&lt;br /&gt;
  return str;&lt;br /&gt;
}&lt;br /&gt;
function binb2b64 (binarray) {&lt;br /&gt;
  var tab = &amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;quot;;&lt;br /&gt;
  var str = &amp;quot;&amp;quot;;&lt;br /&gt;
  for(var i = 0; i &amp;lt; binarray.length * 4; i += 3)&lt;br /&gt;
  {&lt;br /&gt;
    var triplet = (((binarray[i   &amp;gt;&amp;gt; 2] &amp;gt;&amp;gt; 8 * (3 -  i   %4)) &amp;amp; 0xFF) &amp;lt;&amp;lt; 16)&lt;br /&gt;
                | (((binarray[i+1 &amp;gt;&amp;gt; 2] &amp;gt;&amp;gt; 8 * (3 - (i+1)%4)) &amp;amp; 0xFF) &amp;lt;&amp;lt; 8 )&lt;br /&gt;
                |  ((binarray[i+2 &amp;gt;&amp;gt; 2] &amp;gt;&amp;gt; 8 * (3 - (i+2)%4)) &amp;amp; 0xFF);&lt;br /&gt;
    for(var j = 0; j &amp;lt; 4; j++)&lt;br /&gt;
    {&lt;br /&gt;
      if(i * 8 + j * 6 &amp;gt; binarray.length * 32) str += &amp;quot;&amp;quot;;&lt;br /&gt;
      else str += tab.charAt((triplet &amp;gt;&amp;gt; 6*(3-j)) &amp;amp; 0x3F);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return str;&lt;br /&gt;
}&lt;br /&gt;
function hex_sha2(s){return binb2hex(core_sha256(str2binb(s),s.length * chrsz));}&lt;br /&gt;
function b64_sha2(s){return binb2b64(core_sha256(str2binb(s),s.length * chrsz));}&lt;br /&gt;
function str_sha2(s){return binb2str(core_sha256(str2binb(s),s.length * chrsz));}&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;form&amp;gt;&lt;br /&gt;
      &amp;lt;font color=#000000 size=3&amp;gt;Input&amp;lt;/font&amp;gt;&lt;br /&gt;
      &amp;lt;input type=text name=input size=40&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
      &amp;lt;font color=#000000 size=3&amp;gt;Result&amp;lt;/font&amp;gt;&lt;br /&gt;
      &amp;lt;input type=text name=hash size=50&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
      &amp;lt;input type=button value=&amp;quot;SHA-256 Hash&amp;quot; onclick=&amp;quot;hash.value = hex_sha2(input.value)&amp;quot;&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;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>