用dhtml做了一个密码管理器[1]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 emu 的 blog

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title> emu's password manager </title>
<meta name="generator" content="editplus">
<meta name="author" content="emu(ston)">
<meta name="keywords" content="password">
<meta name="description" content="an hyper text application which can help you manage your passwords">
<script language="javascript">
<!--
/*--------------------------------- md5 function ----------------------------------*/

function array(n) {
  for(i=0;i<n;i++) this[i]=0;
  this.length=n;
}

function integer(n) { return n%(0xffffffff+1); }

function shr(a,b) {
  a=integer(a);
  b=integer(b);
  if (a-0x80000000>=0) {
    a=a%0x80000000;
    a>>=b;
    a+=0x40000000>>(b-1);
  } else
    a>>=b;
  return a;
}

function shl1(a) {
  a=a%0x80000000;
  if (a&0x40000000==0x40000000)
  {
    a-=0x40000000; 
    a*=2;
    a+=0x80000000;
  } else
    a*=2;
  return a;
}

function shl(a,b) {
  a=integer(a);
  b=integer(b);
  for (var i=0;i<b;i++) a=shl1(a);
  return a;
}

function and(a,b) {
  a=integer(a);
  b=integer(b);
  var t1=(a-0x80000000);
  var t2=(b-0x80000000);
  if (t1>=0)
    if (t2>=0)
      return ((t1&t2)+0x80000000);
    else
      return (t1&b);
  else
    if (t2>=0)
      return (a&t2);
    else
      return (a&b); 
}

function or(a,b) {
  a=integer(a);
  b=integer(b);
  var t1=(a-0x80000000);
  var t2=(b-0x80000000);
  if (t1>=0)
    if (t2>=0)
      return ((t1|t2)+0x80000000);
    else
      return ((t1|b)+0x80000000);
  else
    if (t2>=0)
      return ((a|t2)+0x80000000);
    else
      return (a|b); 
}

function xor(a,b) {
  a=integer(a);
  b=integer(b);
  var t1=(a-0x80000000);
  var t2=(b-0x80000000);
  if (t1>=0)
    if (t2>=0)
      return (t1^t2);
    else
      return ((t1^b)+0x80000000);
  else
    if (t2>=0)
      return ((a^t2)+0x80000000);
    else
      return (a^b); 
}

function not(a) {
  a=integer(a);
  return (0xffffffff-a);
}

    var state = new array(4);
    var count = new array(2);
 count[0] = 0;
 count[1] = 0;                    
    var buffer = new array(64);
    var transformbuffer = new array(16);
    var digestbits = new array(16);

    var s11 = 7;
    var s12 = 12;
    var s13 = 17;
    var s14 = 22;
    var s21 = 5;
    var s22 = 9;
    var s23 = 14;
    var s24 = 20;
    var s31 = 4;
    var s32 = 11;
    var s33 = 16;
    var s34 = 23;
    var s41 = 6;
    var s42 = 10;
    var s43 = 15;
    var s44 = 21;

    function f(x,y,z) {
 return or(and(x,y),and(not(x),z));
    }

    function g(x,y,z) {
 return or(and(x,z),and(y,not(z)));
    }

    function h(x,y,z) {
 return xor(xor(x,y),z);
    }

    function i(x,y,z) {
 return xor(y ,or(x , not(z)));
    }

    function rotateleft(a,n) {
 return or(shl(a, n),(shr(a,(32 - n))));
    }

    function ff(a,b,c,d,x,s,ac) {
        a = a+f(b, c, d) + x + ac;
 a = rotateleft(a, s);
 a = a+b;
 return a;

本文关键:emu 加密 解密
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top