javascript客户端生成MD5值的函数代码

测试代码:

/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Copyright (C) Paul Johnston 1999 - 2000.
* Updated by Greg Holt 2000 - 2001.
* See http://pajhome.org.uk/site/legal.html for details.
*/
var hex_chr = "0123456789abcdef";
function rhex(num)
{
str = "";
for(j = 0; j > (j * 8 + 4)) & 0x0F) +
hex_chr.charAt((num >> (j * 8)) & 0x0F);
return str;
}
function str2blks_MD5(str)
{
nblk = ((str.length + 8) >> 6) + 1;
blks = new Array(nblk * 16);
for(i = 0; i > 2] |= str.charCodeAt(i) > 2] |= 0x80 > 16) + (y >> 16) + (lsw >> 16);
return (msw >> (32 - cnt));
}
function cmn(q, a, b, x, s, t)
{
return add(rol(add(add(a, q), add(x, t)), s), b);
}
function ff(a, b, c, d, x, s, t)
{
return cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function gg(a, b, c, d, x, s, t)
{
return cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function hh(a, b, c, d, x, s, t)
{
return cmn(b ^ c ^ d, a, b, x, s, t);
}
function ii(a, b, c, d, x, s, t)
{
return cmn(c ^ (b | (~d)), a, b, x, s, t);
}
function MD5(str)
{
x = str2blks_MD5(str);
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
for(i = 0; i

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

(0)

相关推荐

  • JavaScript 事件属性绑定带参数的函数

    例如不能采用这种调用方式:element.onclick = test();element.onclick = test(arg1,arg2);只能通过element.onclick = function(){ ... };或者element.onclick = test这种方式来实现,所以无法给函数传递参数.参考了大量的网上资料,解决这个问题的方式,以代码为例,如下所示: 复制代码 代码如下: function Handler() { }; Handler.prototype = { /* *

  • js匿名函数作为函数参数详解

    由衷的感叹,js真是烦. 学到现在,渐渐理解了什么是:语言都是通用的,没有好不好,只有擅长不擅长. 继承,多态,甚至指针,c能实现,c++,java有,javascript(和java是雷锋和雷峰塔的区别,名字上不知道坑了多少人)也能变通实现. 温故知新,今天又回味了一遍,匿名函数作为函数参数. 代码很短,五脏俱全. <!DOCTYPE html> <html lang="en"> <head> </head> <body>

  • js function定义函数使用心得

    1.最基本的作为一个本本分分的函数声明使用. 复制代码 代码如下: function func(){} 或 var func=function(){}; 2.作为一个类构造器使用: 复制代码 代码如下: function class(){} class.prototype={}; var item=new class(); 3.作为闭包使用: 复制代码 代码如下: (function(){ //独立作用域 })(); 4.可以作为选择器使用: 复制代码 代码如下: var addEvent=ne

  • 深入理解JS函数的参数(arguments)的使用

    JS函数的参数在function内可以用arguments对象来获取. 参数的调用有两种方式: 1.期望参数的使用. 2.实际传递参数的使用. 应用举例: function Test(a, b){ var i, s = "Test函数有"; var numargs = arguments.length; // 获取实际被传递参数的数值. var expargs = Test.length; // 获取期望参数的数值,函数定义时的预期参数个数(有a和b 2个参数). s += (expa

  • js循环动态绑定带参数函数遇到的问题及解决方案[转]

    众所周知,不带参数的绑定非常简单,只要使用(语法:"document.getElementById("对象ID名").attachEvent("事件名,如onchange",函数名);")(示例:"document.getElementById("select_0").attachEvent("onchange",modifyFunction);")即可.(注:以下只写示例) 带参数的绑

  • Javascript 函数中的参数使用分析

    首先,在JS中函数也是一种标识符,可以将它赋值给新的变量,也可以通过这个变量来调用.这有点像C语言的函数指针,不过也不完全一样,如下面的代码: 复制代码 代码如下: function myfun() { alert("funcation call"); } var fun = myfun; fun(); 再有一个值得说一下的,就是JS中的函数的参数不一定是严格匹配的,通常的编程经验,比如有这样一个函数 fun(aa,bb),那么我们在调用这个函数的时候就应该给他传递两个参数.但是在JS

  • js中递归函数的使用介绍

    下面我们就做一个10以内的阶乘试试看吧: js中递归函数的使用 function f(num){ if(num alert("10!的结果为:"+f(10)); [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 递归函数的调用就说这么多了 js递归函数调用自身时的保险方式. 来自js高级程序设计 一个典型阶乘递归函数: 复制代码 代码如下: function fact(num){ if (num<=1){ return 1; }else{ return num*fact

  • JS作为值的函数用法示例

    本文实例讲述了JS作为值的函数用法.分享给大家供大家参考,具体如下: function callSomeFunction(someFunction,someArgument){ return someFunction(someArgument); } 这个函数接受两个参数,第一个函数应该是一个函数,第二个参数应该是要传递给该函数的一个值.该函数是通用的. 如: function add10(num){ return num+10; } var result = callSomeFunction(

  • js中一个函数获取另一个函数返回值问题探讨

    复制代码 代码如下: //此种为异步,还不等ajax赋完值,函数就return了. function getCaseInfoForMap(){ var formInfo=$("#firstForm").serialize(); var dd; $.ajax({ type:"post", url:"<%=path %>/webmodule/constructionDecision/WjInfo/getCaseInfoForMap.do?timeT

  • js trim函数 去空格函数与正则集锦

    但是如果项目没有用到jQuery等框架的话,js本身又没有这样的函数,我们不得不自己写这样的函数,下面是函数的具体实现: 复制代码 代码如下: //供使用者调用 function trim(s){ return trimRight(trimLeft(s)); } //去掉左边的空白 function trimLeft(s){ if(s == null) { return ""; } var whitespace = new String(" \t\n\r"); va

随机推荐